请问一条SQL语句的写法
A表结构如下: Id OrganName
-------------------------
1 运输板块\集团决策层\
2 集团执行层\集团董事局\运输板块管理委员会
3 运输板块管理委员会\航空运输板块领导
B表结构: Id OrganName OrganId
----------------------------------------
1 运输板块 123
2 集团决策层 444
3 集团执行层 666
4 集团董事局 522
5 运输板块管理委员会 856
6 航空运输板块领导 043
运行的结果 Id OrganName OrganId
-------------------------------
1 运输板块\集团决策层\ 123、444
2 集团执行层\集团董事局\运输板块管理委员会 666、522、856 3 运输板块管理委员会\航空运输板块领导 856、043
------解决方案--------------------Create Function F_GetOrganId(@OrganName Nvarchar(1000))
Returns Varchar(1000)
As
Begin
Declare @S Varchar(1000)
Select @S = ' '
Select @S = @S + '\ ' + Rtrim(OrganId) From B Where CharIndex( '\ ' + OrganName + '\ ' , '\ ' + @OrganName + '\ ') > 0
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End
GO
Select
Id,
OrganName,
dbo.F_GetOrganId(OrganName) As OrganId
From
A
GO
--Result
/*
Id OrganName OrganId
1 运输板块\集团决策层 123\444
2 集团执行层\集团董事局\运输板块管理委员会 666\522\856
3 运输板块管理委员会\航空运输板块领导 856\43
*/
------解决方案----------------------“\”改用“、”
Create Function F_GetOrganId(@OrganName Nvarchar(1000))
Returns Varchar(1000)
As
Begin
Declare @S Varchar(1000)
Select @S = ' '
Select @S = @S + '、 ' + Rtrim(OrganId) From B Where CharIndex( '\ ' + OrganName + '\ ' , '\ ' + @OrganName + '\ ') > 0
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End