create table tb ([id] int,[name] varchar(2))
insert into tb
select 1,'aa' union all
select 2,'bb' union all
select 1,'cc' union all
select 3,'dd' union all
select 2,'ee'
select * from tb
方法一:
--------------------------------------------------------------------------
select
id,
name=stuff((select ','+name from tb where id=t.id for xml path('')),1,1,'')
from
tb t
group by
id
--------------------------------------------------------------------------
方法二:
--------------------------------------------------------------------------
CREATE FUNCTION GET_STRING(@ID INT)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @NAME VARCHAR(500)
SELECT @NAME=ISNULL(@NAME+',','')+NAME FROM TB WHERE ID=@ID
RETURN @NAME
END
SELECT ID ,DBO.GET_STRING(ID)NAME FROM TB GROUP BY ID
--------------------------------------------------------------------------
转至 :
http://www.17js.net/showtopic-111180.aspx
MS SQL_使用for xml path 将1列多行转换为字符串连接起来
最新推荐文章于 2023-01-09 10:26:42 发布
本文介绍两种使用SQL进行数据聚合的方法,一种是通过STUFF函数直接在查询中进行字符串拼接,另一种则是创建自定义函数来实现对特定ID的名称进行组合。
262

被折叠的 条评论
为什么被折叠?



