在我的Select查询中,我只想根据子查询(即另一个表中的值)设置列的别名。这在SQL Server 2008中是否可行?
像:
SELECT tax_Amt AS (SELECT tax FROM Purchase.tblTax WHERE tax_ID=@tax_ID)
FROM Table
以任何方式实现上述查询?
答案 0 :(得分:2)
不,您无法在标准SQL中动态设置别名或列名。
如果需要,您必须使用动态SQL:但请注意别名适用于列,因此所有行都具有相同的别名。您不能逐行更改别名
就个人而言,我还有一个名为“TaxType”的额外列,或者因为你想要改变每行的名称。即使所有行都具有相同的别名,我也会这样做,所以我的客户端代码需要“TaxType”
答案 1 :(得分:1)
试试这样:
SELECT (SELECT tax FROM Purchase.tblTax WHERE tax_ID=@tax_ID) AS tax_Amt
FROM Table