0
我有一個表emp,選擇父母和孩子從同一個表
CREATE TABLE [dbo].[Emp](
[EmpId] [int] NULL,
[EmpName] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ManagerId] [int] NULL
) ON [PRIMARY]
現在,將以下值插入表
Insert Into Emp Values(1,'A',0)
Insert Into Emp Values(2,'B',1)
Insert Into Emp Values(3,'C',2)
Insert Into Emp Values(4,'D',2)
Insert Into Emp Values(5,'E',4)
Insert Into Emp Values(6,'F',4)
Insert Into Emp Values(7,'G',4)
Insert Into Emp Values(8,'H',6)
Insert Into Emp Values(9,'I',5)
Insert Into Emp Values(10,'J',7)
Insert Into Emp Values(11,'K',4)
我想列出員工的姓名和他們的經理的名字選擇語句。
我現在正在做的是創建一個臨時表,其中包含所有經理姓名和他們的ID。
然後根據ID從管理器表中獲取名稱。
但我知道這不是一個正確的方法,實際上它很複雜。
感謝您的查詢。同時我寫了這個,請問你能告訴我我錯在哪裏。我剛剛讀到CTE,這是我嘗試 ** WITH ManagerInfo(EMPID,empName) AS ( SELECT DISTINCT EMPID,empName FROM EMP其中EMPID IN(從EMP選擇經理ID) ) 選擇e。 EmpName,MI.EmpName FROM Emp e INNER JOIN ManagerInfo MI ** – Zerotoinfinity
@Zerotoinfinite:您的CTE不是遞歸的...... –
如何使它遞歸? – Zerotoinfinity