日期:2014-05-18 浏览次数:20494 次
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 /* 名称 上级名称 ------ ------ 总公司 总公司 技术部 总公司 研发部 技术部 销售部 总公司 */
------解决方案--------------------
直接用