一尘不染

T-SQL查询中的动态别名

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))

但这是行不通的。有人知道如何做到这一点吗?

我想以一张桌子结束

rownr|revenue2014|revenue2013
-----------------------------
1    |1234       |4321

在此先多谢!


阅读 169

收藏
2021-05-05

共1个答案

一尘不染

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查询中无法做到这一点。所以只有这样。

2021-05-05