比如表中有三列:
ID 名称 上级ID
0 总公司 0
1 技术部 0
2 研发部 1
3 销售部 0
查询的时候我想查出的是
名称 上级名称
总公司 总公司
技术部 总公司
研发部 技术部
销售部 销售部
大概就是这么个意思,SQL语句怎么写啊有没有大大帮我下~~~~我实在搞不出来了
------解决方案--------------------
- SQL code
if object_id('[tb]') is not null drop table [tb]gocreate table [tb]([ID] int,[名称] varchar(6),[上级ID] int)insert [tb]select 0,'总公司',0 union allselect 1,'技术部',0 union allselect 2,'研发部',1 union allselect 3,'销售部',0select a.名称,isnull(b.名称,a.名称) as 名称 from tb a left join tb b on a.上级ID=b.id--测试结果:/*名称 名称------ ------总公司 总公司技术部 总公司研发部 技术部销售部 总公司(4 行受影响)*/
------解决方案--------------------
- SQL code
declare @t table (ID int,名称 varchar(6),上级ID int)insert into @tselect 0,'总公司',0 union allselect 1,'技术部',0 union allselect 2,'研发部',1 union allselect 3,'销售部',0select a.名称,b.名称 AS 上级名称 from @t a LEFT JOIN @t b ON a.上级ID=b.ID/*名称 上级名称------ ------总公司 总公司技术部 总公司研发部 技术部销售部 总公司*/
------解决方案--------------------
直接用