Запрос на замену идентификатора на имя в той же таблице? - PullRequest
1 голос
/ 14 июля 2020

Может ли кто-нибудь помочь мне разобраться в этом SQL Запросе?

У меня есть следующая таблица:

ID | Name | ManagerId
1 | Alice | 4
2 | Bob | 4
3 | Carol | 4
4 | Xavier | 5
5 | Zack | NULL

Я хочу, чтобы новая таблица выглядела так:

ID | Name | Manager Name
1 | Alice | Xavier
2 | Bob | Xavier
3 | Carol | Xavier
4 | Xavier | Zack
5 | Zack | NULL

Итак, по сути, я хочу заменить третий столбец с «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

У меня была еще одна попытка, но я быстро запнулся:

SELECT ID, Name, ??
INNER JOIN Employee ON ID = Employee.ID
FROM Employee

1 Ответ

3 голосов
/ 14 июля 2020

Просто используйте join:

select e.*, m.name as manager_name
from employee e left join
     employee m
     on e.managerid = m.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...