服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - Sql function 多行中的列合并为一行一列的方法

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

2019-12-01 13:54MSSQL教程网 Sql Server

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

延伸 · 阅读

精彩推荐