ytop 发表于 2014-4-3 13:27:03

使用SQL Server临时表来实现字符串合并处理

处理的数据

1.CREATE TABLE tb(col1 varchar(10),col2 int)

2.INSERT tb SELECT 'a',1

3.union ALL SELECT 'a',2

4.union ALL SELECT 'b',1

5.union ALL SELECT 'b',2

6.union ALL SELECT 'b',3

合并处理

1.SELECT col1,col2=CAST(col2 as varchar(100))

2.INTO #t FROM tb

3.ORDER BY col1,col2

4.DECLARE @col1 varchar(10),@col2 varchar(100)

5.UPDATE #t SET

6.@col2=CASE WHEN @col1col1=col1 THEN @col2+','+col2 ELSE col2 END,

7.@col1col1=col1,

8.col2=@col2

9.SELECT * FROM #t

更新处理后的SQL Server临时表

1.col1 col2

2.   -

3.a 1

4.a 1,2

5.b 1

6.b 1,2

7.b 1,2,3

8.*/

得到最终结果

1.SELECT col1,col2=MAX(col2) FROM #t GROUP BY col1

2./*结果

3.col1 col2

4.   -

5.a 1,2

6.b 1,2,3

7.*/

删除测试

1.DROP TABLE tb,#t

2.GO



Ps:

cast:将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )

页: [1]
查看完整版本: 使用SQL Server临时表来实现字符串合并处理