我试图找出如何将计算值用作别名的一部分。
例如:
选择employeeName为''姓名',但'姓名'可以是getdate()+'name o guy' Addin限定符只是阻止内部代码计算。
这有可能吗?我将使用分区按年份对结果进行分组,我需要将列别名基于您所在的年份
答案 0 :(得分:1)
我不知道这是不是你想要的,但它可能是一个很好的开始:
DECLARE @var table(rownum int, rowkey varchar(60), ALIAS varchar(80))
INSERT INTO @var SELECT row_number() over (ORDER BY employeeName), employeeName, cast(getdate() AS varchar(12))+employeeName FROM Table1
DECLARE @query varchar(500)
DECLARE @rowkey varchar(60), @i int, @max int
SET @i = 1
SET @max = (SELECT count(*) FROM @var)
SET @query = ''
WHILE @i <= @max
BEGIN
SET @rowkey = (SELECT rowkey FROM @var WHERE rownum = @i)
SET @query = 'select employeeName as "'+(SELECT ALIAS FROM @var WHERE rowkey = @rowkey)+'" from Table1 where employeeName = '''+@rowkey+''';'
exec(@query)
SET @i = @i + 1
END;
答案 1 :(得分:0)
如果您只期望单个值,则可以使用表变量。但是,如果创建了多行,它实际上将成为临时表。如果您认为可能,请将其声明为临时表。