SQL 與資料轉換 中階

SQL CTE 與遞迴查詢

AI 練習作答

請說明 CTE 的用途,以及遞迴 CTE 的工作原理。

CTE(Common Table Expression)

用 WITH 子句定義具名的暫時結果集,讓複雜查詢更易讀、可重用。

遞迴 CTE

用於查詢層級/圖形結構,如組織架構、類別樹。語法為 WITH RECURSIVE,包含兩部分:

  1. 錨點查詢(Anchor):初始行(如根節點)。
  2. 遞迴查詢:引用 CTE 自身,每次迭代基於上次結果擴展。

遞迴 CTE 範例

WITH RECURSIVE org AS ( SELECT id, name, manager_id, 1 AS depth FROM employees WHERE manager_id IS NULL UNION ALL SELECT e.id, e.name, e.manager_id, o.depth + 1 FROM employees e JOIN org o ON e.manager_id = o.id ) SELECT * FROM org ORDER BY depth;

注意

遞迴 CTE 需防止無窮迴圈,通常加 depth 限制或確保資料無循環引用。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分