SQL语句单表查询的有关问题,蛮绕的求帮助

SQL语句单表查询的问题,蛮绕的求帮助比如表中有三列:ID名称上级ID0总公司01技术部02研发部13销售部0查询的

SQL语句单表查询的问题,蛮绕的求帮助
比如表中有三列:

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/*名称     上级名称------ ------总公司    总公司技术部    总公司研发部    技术部销售部    总公司*/
[解决办法]
直接用