代码改变世界

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

2014-04-03 11:21  河水  阅读(493)  评论(0)    收藏  举报

处理的数据

  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 )