查询以在同一个表中用名称替换ID?

Sto*_*out 2 sql sql-server

谁能帮我解决这个 SQL 查询?

我有下表:

ID | Name | ManagerId
1 | Alice | 4
2 | Bob | 4
3 | Carol | 4
4 | Xavier | 5
5 | Zack | NULL
Run Code Online (Sandbox Code Playgroud)

我希望新表看起来像这样:

ID | Name | Manager Name
1 | Alice | Xavier
2 | Bob | Xavier
3 | Carol | Xavier
4 | Xavier | Zack
5 | Zack | NULL
Run Code Online (Sandbox Code Playgroud)

因此,本质上我想将第三列从“ManagerId”替换为“Manager Name”,其中所有信息都在同一个表中检索。

谁能帮我查询一下吗?

我正在考虑类似以下的内容,但它甚至没有编译:

WITH EmployeeCTE AS
(
   SELECT *, ID, Name, ManagerID OVER(PARTITION BY ID ORDER BY ID)
   FROM Employee
)
SELECT ID, Name, EmployeeCTE.Name as "Manager Name"
FROM EmployeesCTE
Run Code Online (Sandbox Code Playgroud)

我又尝试了一次,但很快就被难住了:

SELECT ID, Name, ??
INNER JOIN Employee ON ID = Employee.ID
FROM Employee
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

只需使用join

select e.*, m.name as manager_name
from employee e left join
     employee m
     on e.managerid = m.id
Run Code Online (Sandbox Code Playgroud)