SQL Server không có CONNECT BY
. Bạn cần sử dụng CTE đệ quy.
Đặt START WITH
trong WHERE
bộ lọc của phần neo (phần đầu tiên của CTE).
Trong phần đệ quy (nửa sau), hãy tham gia lại CTE thành EMP
với CONNECT BY
điều kiện.
WITH cte AS (
SELECT
LEVEL = 1,
e.EMPNO,
e.ENAME,
e.JOB,
e.MGR
FROM EMP e
WHERE e.MGR IS NULL
UNION ALL
SELECT
cte.LEVEL + 1,
e.EMPNO,
e.ENAME,
e.JOB,
e.MGR
FROM EMP e
JOIN cte ON e.MGR = cte.EMPNO
)
SELECT
cte.LEVEL,
cte.EMPNO,
cte.ENAME,
cte.JOB,
cte.MGR
FROM cte
ORDER BY cte.LEVEL;