日期:2014-05-19  浏览次数:20536 次

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,
col2=@col2

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

DROP TABLE tb,#t

col1 col2
---------- -------
a 1,2
b 1,2,3