sql中合并列方法

方法一:创建合并列函数

-------创建一个方法----------

CREATE FUNCTION dbo.Role_Name(@AdminID int)
return varchar(8000)
AS
BEGIN
    DECLARE @r varchar(8000)
    SET @r = ''
    SELECT @r = @r + '/' +Role
    FROM (select a.AdminID,d.Role from r b inner join PA a on a.RenShiID=b.id 
          inner join Role c on a.AdminID=c.adminID inner join  role d on d.ID=c.RoleID )t
    WHERE AdminID=@AdminID
    RETURN STUFF(@r, 1, 1, '')
END

--调用合并列函数--- 

dbo.Role_Name(1) 


--删除合并列函数--
drop function dbo.Role_Name

方法二:xml path()方法在05之后可用

select id,stuff((select '-' + convert(varchar(4),value)from tb where id=A.id order by id for xml path('')),1,1,'') 
as values
from tb A
group by id
select top 10 a.ID,a.customerName,a.guideType 
,(stuff((select ',' + guideLine from Line where CHARINDEX(cast(id as varchar),a.guideType)>0 for xml path('')),1,1,''))
from callIn as a order by ID desc
原文地址:https://www.cnblogs.com/ly77461/p/7872786.html