SQL函数将某个字段合并在一起

  • 最近遇到需要将关联表中的某个字段全部查询出来并且重新组合为一个字段,这个时候普通的连接查询就满足不了需求了,需要用到SQL函数来完成:
ALTER function dbo.getResCodesByOwnerId(@OwnerId INT)
returns nvarchar(2000)
as
begin
DECLARE @codes VARCHAR(2000)

SET @codes=''
select  @codes=stuff((select ','+residence_code from crm_owner co left join crm_owner_residence  cor on  co.id=cor.owner_id  where co.id=@OwnerId  for xml path('')),1,1,'')
return @codes
END
  • 拿id = 2 的数据来做测试,得到结果:
select (数据库名).getResCodesByOwnerId(fr.owner_id) as room_code
from t1 fr left join t2 frd on fr.owner_id=frd.owner_id
结果:
    1101010105,11GU002,1101010104

你可能感兴趣的:(Sql)