当前位置: 代码迷 >> Sql Server >> SOS!该如何解决
  详细解决方案

SOS!该如何解决

热度:306   发布时间:2016-04-27 20:46:31.0
SOS!!!
有一个查询需求,如下:
查询某表,要求对把某列(varchar型)数据以 ", "号区分取出来组成一个字符串,不知道如何实现?
请各位以select   的方法告知结果,不要函数或存储过程。


------解决方案--------------------
--参看
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 @col1=col1 THEN @col2+ ', '+col2 ELSE col2 END,
@col1=col1,
[email protected]

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

DROP TABLE tb,#t

col1 col2
---------- -------
a 1,2
b 1,2,3
  相关解决方案