22,209
社区成员
发帖
与我相关
我的任务
分享
把ORDER BY EMPLOYEE.EmployeeId DESC放在外面,表名要去掉,如下:
select Employee,Manager
from
(SELECT EMPLOYEE.EmployeeId,EMPLOYEE.EmployeeName AS Employee, MANAGER.EmployeeName AS Manager
FROM EMPLOYEE,
EMPLOYEE AS MANAGER
WHERE EMPLOYEE.ManagerId = MANAGER.EmployeeId
UNION
SELECT EMPLOYEE.EmployeeId,EMPLOYEE.EmployeeName AS Employee, 'No Manager' AS Manager
FROM EMPLOYEE
WHERE EMPLOYEE.ManagerId IS NULL
) tb ORDER BY EmployeeId DESC
select
a.EmployeeName,isnull(b.EmployeeName,'No Manager') as Manageranme
from
EMPLOYEE a left join EMPLOYEE b
on
a.ManagerId=b.EmployeeId
select Employee,Manager
from
(SELECT EMPLOYEE.EmployeeId,EMPLOYEE.EmployeeName AS Employee, MANAGER.EmployeeName AS Manager
FROM EMPLOYEE,
EMPLOYEE AS MANAGER
WHERE EMPLOYEE.ManagerId = MANAGER.EmployeeId
UNION
SELECT EMPLOYEE.EmployeeId,EMPLOYEE.EmployeeName AS Employee, 'No Manager' AS Manager
FROM EMPLOYEE
WHERE EMPLOYEE.ManagerId IS NULL) tb
SELECT * FROM EMPLOYEE
运行之后
CREATE TABLE EMPLOYEE
(
EmployeeId int,
ManagerId int,
EmployeeName varchar(10)
)
INSERT EMPLOYEE SELECT 1,2,'Peter'
INSERT EMPLOYEE SELECT 2,3,'David'
INSERT EMPLOYEE SELECT 3,NULL,'Jane'
INSERT EMPLOYEE SELECT 4,2,'Mary'
INSERT EMPLOYEE SELECT 5,2,'Henry'
select a.EmployeeName,isnull(b.EmployeeName,'No Manager') as Manageranme
from EMPLOYEE a left join EMPLOYEE b on a.ManagerId=b.EmployeeId
/*
EmployeeName Manageranme
------------ -----------
Peter David
David Jane
Jane No Manager
Mary David
Henry David
(5 行受影响)