首页 / 数据库 / SQLServer / Sql function 多行中的列合并为一行一列的方法
复制代码 代码如下:
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