日期:2014-05-18 浏览次数:20597 次
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([ID] int,[名称] varchar(6),[上级ID] int)
insert [tb]
select 0,'总公司',0 union all
select 1,'技术部',0 union all
select 2,'研发部',1 union all
select 3,'销售部',0
select a.名称,isnull(b.名称,a.名称) as 名称
from tb a
left join tb b on a.上级ID=b.id
--测试结果:
/*
名称 名称
------ ------
总公司 总公司
技术部 总公司
研发部 技术部
销售部 总公司
(4 行受影响)
*/
------解决方案--------------------
declare @t table (ID int,名称 varchar(6),上级ID int) insert into @t select 0,'总公司',0 union all select 1,'技术部',0 union all select 2,'研发部',1 union all select 3,'销售部',0 select a.名称,b.名称 AS 上级名称 from @t a LEFT JOIN @t b ON a.上级ID=b.ID /* 名称 上级名称 ------ ------ 总公司 总公司 技术部 总公司 研发部 技术部 销售部 总公司 */
------解决方案--------------------
直接用