SQL Server 2008 R2:动态分配别名

时间:2015-10-16 05:02:23

标签: sql-server sql-server-2008-r2

我有以下字符串可以按预期进行。

给定字符串

DECLARE @String VARCHAR(MAX) = '[ColumnA],[ColumnB],[ColumnC]'
                              /*Will be any numbers of columns*/

预期字符串

SUM([ColumnA]) AS [ColumnA],SUM([ColumnB]) AS [ColumnA],SUM([ColumnC]) AS [ColumnA]

我的尝试:

SELECT 'SUM('+ REPLACE(@String,',','),SUM(') + ')'

我能得到:

SUM([ColumnA]),SUM([ColumnB]),SUM([ColumnC])

坚持分配每个总和前面的别名。

1 个答案:

答案 0 :(得分:1)

我使用了split functionsFOR XML中的一个。

    SELECT STUFF(
                   (select ', SUM('+sit.items +') AS '+sit.items
                    from dbo.uf_SplitIntoTableStr('[column1],[column2]',',') sit
                    for xml path('')
                 ),1,1,'')