使用声明的变量作为列名

时间:2011-02-02 12:25:57

标签: sql sql-server-2005 tsql

我正在寻找一种方法来使用动态变量作为列名 - 例如,如果我假设使用以下内容来定义财务年度:

DECLARE @currentfy NVARCHAR(6) --Current financial year
SET @currentfy = YEAR(GETDATE()) - CASE WHEN MONTH(GETDATE()) < 4 THEN 1 ELSE 0 END

然后我希望能够做到这样的事情:

SELECT @currentfy AS @currentfy
SELECT @currentfy - 1 AS @currentfy_1

所以看起来好像我已经这样做了:

SELECT 2010 AS [2010]
SELECT 2009 AS [2009]

有没有办法在不使用动态旋转的情况下执行此操作? (因为我的桌子很大,我想尽可能避免旋转)。

1 个答案:

答案 0 :(得分:1)

不,使用动态旋转或额外的列/结果集来描述后续列/结果集