22,209
社区成员
发帖
与我相关
我的任务
分享
WITH CTE(Id,Name,Pid,Memo)
AS (
SELECT 1, N'总公司',0,'ddd' UNION ALL
SELECT 2, N'财务部门', 1,NULL UNION ALL
SELECT 3, N'生产部门', 1,NULL UNION ALL
SELECT 4, N'分公司',0,NULL UNION ALL
SELECT 5, N'分财务部门',4,NULL UNION ALL
SELECT 7, N'分生产部门',4,NULL UNION ALL
SELECT 8, N'分1',0,NULL UNION ALL
SELECT 9, N'财务1', 8, NULL UNION ALL
SELECT 10, N'成产1',8, NULL
)
SELECT DISTINCT A.Name,ISNULL(B.Name,N'无') AS Col
FROM CTE AS A
LEFT JOIN CTE AS B
ON A.pid=B.Id
if object_id('tb') is not null
drop table tb
go
create table tb(Id int,Name varchar(20),Pid int,Memo varchar(100))
insert into tb
SELECT 1, N'总公司',0,'ddd' UNION ALL
SELECT 2, N'财务部门', 1,NULL UNION ALL
SELECT 3, N'生产部门', 1,NULL UNION ALL
SELECT 4, N'分公司',0,NULL UNION ALL
SELECT 5, N'分财务部门',4,NULL UNION ALL
SELECT 7, N'分生产部门',4,NULL UNION ALL
SELECT 8, N'分1',0,NULL UNION ALL
SELECT 9, N'财务1', 8, NULL UNION ALL
SELECT 10, N'成产1',8, NULL
select t1.name,
case when t2.name is null then '无' else t2.name end as name
from tb t1
left join tb t2
on t1.pid = t2.id
/*
name name
总公司 无
财务部门 总公司
生产部门 总公司
分公司 无
分财务部门 分公司
分生产部门 分公司
分1 无
财务1 分1
成产1 分1
*/
WITH CTE(Id,Name,Pid,Memo)
AS (
SELECT 1, N'总公司',0,'ddd' UNION ALL
SELECT 2, N'财务部门', 1,NULL UNION ALL
SELECT 3, N'生产部门', 1,NULL UNION ALL
SELECT 4, N'分公司',0,NULL UNION ALL
SELECT 5, N'分财务部门',4,NULL UNION ALL
SELECT 7, N'分生产部门',4,NULL UNION ALL
SELECT 8, N'分1',0,NULL UNION ALL
SELECT 9, N'财务1', 8, NULL UNION ALL
SELECT 10, N'成产1',8, NULL
)
SELECT Name
,CASE WHEN Pid=0 THEN N'无'
WHEN Pid=1 THEN N'总公司'
WHEN Pid=4 THEN N'分公司'
WHEN Pid=8 THEN N'分1'
ELSE '' END AS col
FROM CTE
create table sx
(id int, name varchar(10), pid int, memo varchar(10))
insert into sx
select 1,'总公司',0,'ddd' union all
select 2,'财务部门',1,NULL union all
select 3,'生产部门',1,NULL union all
select 4,'分公司',0,NULL union all
select 5,'分财务部门',4,NULL union all
select 7,'分生产部门',4,NULL union all
select 8,'分1',0,NULL union all
select 9,'财务1',8,NULL union all
select 10,'成产1',8,NULL
select a.name 'name',
isnull(b.name,'无') 'pname'
from sx a
left join sx b on a.pid=b.id
/*
name pname
---------- ----------
总公司 无
财务部门 总公司
生产部门 总公司
分公司 无
分财务部门 分公司
分生产部门 分公司
分1 无
财务1 分1
成产1 分1
(9 row(s) affected)
*/