Sql function 多行中的列合并为一行一列的方法

时间:2022-05-24 02:31:30

代码如下:


CREATE TABLE tb(standards varchar(50), amount varchar(50), variation varchar(50),statuss varchar(50),Reason varchar(50)) 
insert into tb values('55','279','4','物量积压','加工人员设备不足;T排制作进度较慢;') 
insert into tb values('55','279','4','物量积压','部件人员不足;') 
insert into tb values('55','279','4','物量积压','跨间场地积压;图纸问题较多;') 
insert into tb values('56','300','4','物量积压','AAAA;') 
insert into tb values('56','300','4','物量积压','BBBB;') 
insert into tb values('56','300','4','物量积压','CCCC;') 

create function test(@standards varchar(100)) 
returns varchar(8000) 
as 
begin 
declare @re varchar(500) 
set @re = '' 
select @re = @re+','+Reason 
from tb 
where @standards=standards 
return (stuff(@re,1,1,'')) 
end 


调用 

复制代码代码如下:


select distinct standards,amount,variation,statuss,Reason = dbo.test('55') from tb where standards=55 
select distinct standards,amount,variation,statuss,Reason = dbo.test('56') from tb where standards=56