Pri*_*aaj -1 sql sql-server sql-server-2012
在SQL Server中,我有一个这样的表:
Col-1 Col-2 Col-3
------------------------
A 123 25.13
A 456 67.00
A 789 81.89
Run Code Online (Sandbox Code Playgroud)
我想要这样的输出:
Col-1 Col-2 Col-3
-----------------------------------
A 123,456,789 174.02
Run Code Online (Sandbox Code Playgroud)
小智 5
样本数据 :
DECLARE @T TABLE(Col1 VARCHAR(1),
Col2 INT,
Col3 FLOAT)
INSERT INTO @T( Col1, Col2, Col3 )
VALUES ('A',123,25.13),('A',456,67),('A',789,81.89)
Run Code Online (Sandbox Code Playgroud)
查询:
;WITH Keys AS (SELECT Col1,
SUM(Col3) AS Col3
FROM @T
GROUP BY Col1)
SELECT Keys.Col1,
REPLACE(REPLACE(REPLACE( CONVERT (NVARCHAR(MAX),(SELECT T.Col2 AS A
FROM @T AS T
WHERE T.Col1 = Keys.Col1
FOR XML PATH(''))),'</A><A>',','),'<A>',''),'</A>','') AS Col2,
Keys.Col3
FROM Keys
Run Code Online (Sandbox Code Playgroud)
结果:
Col1 Col2 Col3
A 123,456,789 174.02
Run Code Online (Sandbox Code Playgroud)