我一直在阅读相当多的SO线程&其他人如何实现这一目标,但没有什么能真正帮助我。
IE:
How do I name a column as a date value
todays date as a column name to a simple select statement.
我可以继续向你展示我读过的帖子,但似乎没有人回答我的想法。
基本上,我在SQL中尝试做的是:
SELECT
Blahblah AS DATENAME(MONTH, GETDATE()) --AS "September"
OR
DECLARE
@CM VARCHAR(50)
SET
@CM = DATENAME(MONTH,GETDATE())
SELECT
Blahblah AS @CM --AS "September"
我知道这些都不起作用,但那是为了告诉你我想做什么。有没有人能够做到这一点?
你能指点一下你可能已经读过的一篇帮助你这么做的主题吗?
非常感谢,
麦克
答案 0 :(得分:2)
您可以使用这样的动态SQL:
create table t (val int)
insert t values (100)
declare @month varchar(20) = datename(month, getdate())
declare @sql varchar(max)
set @sql = 'select val as ' + @month + ' from t'
exec (@sql)
结果:
September
-----------
100
答案 1 :(得分:0)
试试这个
DECLARE
@CM VARCHAR(50),
@sql varchar(max)
SET @CM = DATENAME(MONTH,GETDATE())
SET @sql ='SELECT
''Blahblah'' as '+ @CM
exec(@sql)