0

我试图找出如何使用计算值作为别名的一部分。

例如:

选择employeeName 作为''name of guy',但'name of guy' 可以是getdate() + 'name o guy' Addin 限定符只是阻止里面的代码计算。

这有可能吗?我将使用分区按年份对结果进行分组,并且我需要列别名基于您所在的年份

4

2 回答 2

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;
于 2013-08-27T18:39:12.483 回答
0

如果您只期望一个值,则可以使用表变量。但是,如果创建了多行,它实际上就变成了一个临时表。如果您认为这很可能,请声明为临时表。

于 2013-08-27T16:45:52.877 回答