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是将拼接完成后字符第一个,替换成)(第一个参数为要操作的字符串,第二个为从第几个开始替换下标从1开始,第三个参数为替换的个数,第四个参数为替换的字符)
--简单说明:select STUFF(abc,1,1,*) 执行结果为:*abc
-- select STUFF(abc,1,0,*) 执行结果为:*bc
-- select STUFF(abc,2,2,*) 执行结果为:a**
处理后
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除