处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
union ALL SELECT 'a',2
union ALL SELECT 'b',1
union ALL SELECT 'b',2
union ALL SELECT 'b',3
合并处理
SELECT col1,col2=CAST(col2 as varchar(100))
INTO #t FROM tb
ORDER BY col1,col2
DECLARE @col1 varchar(10),@col2 varchar(100)
UPDATE #t SET
@col2=CASE WHEN @col1col1=col1 THEN @col2+','+col2 ELSE col2 END,
@col1col1=col1,
col2=@col2
SELECT * FROM #t
更新处理后的SQL Server临时表
col1 col2
-
a 1
a 1,2
b 1
b 1,2
b 1,2,3
*/
得到最终结果
SELECT col1,col2=MAX(col2) FROM #t GROUP BY col1
/*结果
col1 col2
-
a 1,2
b 1,2,3
*/
删除测试
DROP TABLE tb,#t
GO
Ps:
cast:将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )