SQL中根据相同ID合并多条数据信息

处理前

(第一种方法使用标量值函数)

--新建标量值函数

ALTER function [dbo].[r](@P_ID int )

returns varchar(100)

as

begin 

 declare @s varchar(100)

 select @s=isnull(@s+',','')+rtrim(面料纹理) FROM NewLiningDocument WHERE P_ID = @P_ID

 return @s

end;

 

 

--根据相同ID把多行信息,合并和一条信息

SELECT ID,dbo.r(P_ID) AS 面料纹理 FROM NewLiningDocument GROUP BY P_ID

(第二种方法直接处理)

SELECT P_ID,内容 = STUFF(

            (SELECT ','+rtrim(面料纹理) FROM NewLiningDocument WHERE st.P_ID = P_ID ORDER BY ID FOR XML PATH('')

    ),1,1,''

FROM NewLiningDocument st GROUP BY P_ID

(STUFF是将拼接完成后字符第一个','替换成'')

处理后

猜你喜欢

转载自blog.csdn.net/MonkeyBananas/article/details/80183971