日期:2014-05-18 浏览次数:20433 次
declare @A表 table (id INT IDENTITY,parentid int,name varchar(10),fullname varchar(33)) insert into @A表 select null,'总部','总部' union all select 1,'广州分公司','总部>广州分公司' union all select 2,'人事部','总部>广州分公司>人事部' union all select null,'东莞分公司','总部>东莞分公司' union all select 4,'技术部','总部>东莞分公司>技术部' union all SELECT 5,'技术支持部','总部>东莞分公司>技术部>技术支持部' declare @B表 table (id INT IDENTITY,parentid int,groupname varchar(20),memo varchar(30)) insert into @B表 select null,'广州分公司','广州分公司' union all select 1,'人事部','广州分公司>人事部' union all select null,'中山分公司','中山分公司' union all select 3,'开发部','中山分公司>开发部' insert into @B表(parentid,groupname,memo) select a.parentid,a.name,replace(a.fullname,'总部>','') from @a表 a left join @b表 b on a.name=b.groupname where b.id is null and name<>'总部' select * from @b表 /* id parentid groupname memo ----------- ----------- -------------------- ------------------------------ 1 NULL 广州分公司 广州分公司 2 1 人事部 广州分公司>人事部 3 NULL 中山分公司 中山分公司 4 3 开发部 中山分公司>开发部 5 NULL 东莞分公司 东莞分公司 6 4 技术部 东莞分公司>技术部 7 5 技术支持部 东莞分公司>技术部>技术支持部 */