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
-------------------------
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
解决方案 »
- 帮忙写一个SQL语句(SQL2005存储过程中)
- 当写有判断条件的存储过程时候,总是很难写对小括号之类的,大家怎样对付的?
- select * into from 记录顺序怎么不一致? 万分火急!定重谢!
- 请问:sql 2000和sql 2005能安装在一台机器上么?
- sql中找出连续的记录
- SQL SERVER 2005的 DB文件 怎么附加到 2000 中,最好有详细的介绍和步骤
- 想给表中的id列填入不重复的序列号,从1到200,该怎么做啊
- 表间导数据的问题
- SQLSEVER中哪种字段的数据类型容量最大??
- 谁能介绍几本国外专家编写SQL Server的进阶教程(最好有电子版)
- 出现问题:未能从 OLE DB 提供程序 'SQLOLEDB' 中得到行的数据。OLE/DB provider returned message: 行句柄引用了一个已被删除的行或被标
- SQL语句求助?问题解决马上给分!
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 Table A
(Id Int,
OrganName Nvarchar(1000))
Insert A Select 1, N'运输板块\集团决策层'
Union All Select 2, N'集团执行层\集团董事局\运输板块管理委员会'
Union All Select 3, N'运输板块管理委员会\航空运输板块领导' Create Table B
(Id Int,
OrganName Nvarchar(100),
OrganId Int)
Insert B Select 1, N'运输板块', 123
Union All Select 2, N'集团决策层', 444
Union All Select 3, N'集团执行层', 666
Union All Select 4, N'集团董事局', 522
Union All Select 5, N'运输板块管理委员会', 856
Union All Select 6, N'航空运输板块领导', 043
GO
--建立函數
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
--刪除測試環境
Drop Table A, B
Drop Function F_GetOrganId
GO
--結果
/*
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