開始使用免費開始

你的主管是誰?

在這個練習中,我們會使用表格 employee 提供的 IT 組織資料集。此表包含欄位 ID(員工的編號)、Name(員工姓名),以及 Supervisor(主管的編號)。

這個 IT 組織由不同角色與層級組成。

A section of the entire hierarchy

組織中有一位 IT 總監(ID=1,Heinz Griesser,Supervisor=0),底下有許多下屬員工。在 IT 總監之下,是 IT 架構經理(ID=10,Andreas Sternig,Supervisor=1),他有 3 位部屬。對 Andreas Sternig 而言,Supervisor=1,也就是 IT 總監的 ID

首先,我們要回答這個問題:每位員工的主管是誰?

我們將透過遞迴查詢這個資料集來解決這個問題。

本練習屬於課程

SQL Server 的階層式與遞迴查詢

檢視課程

練習說明

  • 建立名為 employee_hierarchy 的 CTE。
  • 以 IT 總監的資料作為 CTE 的初始步驟,根據他的 Supervisor ID 進行篩選。
  • employee 進行連接,取得主管的姓名。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- Create the CTE employee_hierarchy
WITH ___ AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor
	FROM employee
  	-- Start with the IT Director
	WHERE ___ = ___
	UNION ALL
	SELECT 
  		emp.ID,
  		emp.NAME,
  		emp.Supervisor
	FROM employee emp
  		JOIN employee_hierarchy
  		ON emp.Supervisor = employee_hierarchy.ID)
    
SELECT 
    cte.Name as EmployeeName,
    emp.Name as ManagerName
FROM employee_hierarchy as cte
	JOIN employee as emp
	-- Perform the JOIN on Supervisor and ID
	ON cte.___ = emp.___;
編輯並執行程式碼