当前位置: 代码迷 >> Sql Server >> SQL字符合并的有关问题
  详细解决方案

SQL字符合并的有关问题

热度:18   发布时间:2016-04-27 15:45:01.0
SQL字符合并的问题
原数据
select   *   into   #t
from
(
select   'A '   as   A   , '1 '   as   B
union
select   'A '   as   A   , '2 '   as   B
union
select   'A '   as   A   , '3 '   as   B
union
select   'B '   as   A   , '4 '   as   B
union
select   'B '   as   A   , '5 '   as   B
union
select   'B '   as   A   , '6 '   as   B
union
select   'C '   as   A   , '7 '   as   B
)   a
drop   table   #t

我想分组合并,用查询语句,不用游标的方式。
A     B
----------
A     (1,2,3)
B     (4,5,6)
C     (7)


感谢大师们的帮助


------解决方案--------------------
使用用户定义函数,配合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
GO

--合并处理函数
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @[email protected]+ ', '+CAST(col2 as varchar)
FROM tb
WHERE [email protected]
RETURN(STUFF(@re,1,1, ' '))
END
GO

--调用函数
SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1
--删除测试
DROP TABLE tb
DROP FUNCTION f_str
/*--结果
col1 col2
---------- -----------
a 1,2
b 1,2,3
--*/
GO

------解决方案--------------------
想一个语句搞掂,用SQL2005吧
  相关解决方案