SQL Server显示选中的列名为getdate()?

时间:2016-03-29 03:27:26

标签: sql-server

我在这里有一个选择声明:

select 
    sum(CreditValue) as Right(YEAR(DATEADD(month, -13, GETDATE())), 2)
from
    OrderHeader

如您所见,我想根据今天的日期将列的显示名称修改为年份的最后2位数。然而,系统一直告诉我这个:

  

'右'附近的语法不正确。期待ID,QUOTED_ID,STRING或TEXT_LEX。

有没有让查询可以运行?非常感激!

1 个答案:

答案 0 :(得分:1)

由于您的列名称是动态的,因此您可以尝试使用如下所示的动态查询:

DECLARE @query VARCHAR(2000)

SELECT @query = 'select ' +  CONVERT(VARCHAR(20), SUM(CreditValue)) +' as ' + '''' + CONVERT(VARCHAR(2), Right(YEAR(DATEADD(month, -13, GETDATE())), 2)) + ''''
from OrderHeader

EXEC(@query)