2015-10-16 104 views
2

我有以下字符串使其符合預期。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

我曾使用split functionsFOR XML之一。

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

非常感謝。 – MAK

+0

@MAK歡迎您) –