T-SQL查询中的动态别名

时间:2015-04-08 09:17:15

标签: sql sql-server tsql

我在查询中为字段生成别名时遇到了问题,例如,它为我提供了去年和前一年的收入。我理解我可以做类似的事情:

SELECT 
    1234 AS 'REVENUE' + CAST (year(DATEADD(year,-1,getdate())) AS VARCHAR(20))
    4321 AS 'REVENUE' + CAST (year(DATEADD(year,-2,getdate())) AS VARCHAR(20))

但这不起作用。有人知道如何完成这项工作吗?

我希望最终得到像

这样的表格
rownr|revenue2014|revenue2013
-----------------------------
1    |1234       |4321

提前多多感谢!

迎接Niels

1 个答案:

答案 0 :(得分:4)

DECLARE @sql VARCHAR(1000);
SET @sql = 'SELECT 
    1234 AS REVENUE' + CAST (year(DATEADD(year,-1,getdate())) AS VARCHAR(20)) + ',
    4321 AS REVENUE' + CAST (year(DATEADD(year,-2,getdate())) AS VARCHAR(20))
PRINT @sql
EXEC (@sql)

在静态SQL查询中不可能这样做。所以只有这样。