SQL可以使用计算值作为别名

时间:2013-08-27 16:31:54

标签: sql programming-languages partition

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

例如:

选择employeeName为''姓名',但'姓名'可以是getdate()+'name o guy' Addin限定符只是阻止内部代码计算。

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

2 个答案:

答案 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)

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