有一个查询需求,如下: 查询某表,要求对把某列(varchar型)数据以 ", "号区分取出来组成一个字符串,不知道如何实现? 请各位以select 的方法告知结果,不要函数或存储过程。
这个问题第1个回答:
如果是该列数据求和就好办了,直接select sum(colname) from tablename,但是对于这样的需求,我就没办法了
这个问题第2个回答:
2000及以下不能实现
这个问题第3个回答:
--参看 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
这个问题第4个回答:
或是游标
这个问题第5个回答:
3楼,我装的是SQLSERVER 2005的数据库,有什么T—SQL的新的功能或者办法吗? 4楼,辛苦了,但我不想通过建临时表去实现,而且你的方法太复杂了
这个问题第6个回答:
没用过2005
这个问题第7个回答:
再等下,无分边给分
这个问题第8个回答:
游标吧,不过也与函数差不多,写法
|