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

处理的数据

  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 )

原文地址:https://www.cnblogs.com/HeShui/p/3642538.html