处理前
(第一种方法使用标量值函数)
--新建标量值函数
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是将拼接完成后字符第一个','替换成'')
处理后