SQL Server n'a pas CONNECT BY
. Vous devez utiliser un CTE récursif.
Placez le START WITH
dans le WHERE
filtre de la partie ancre (la première partie du CTE).
Dans la partie récursive (la seconde moitié), rejoignez le CTE à EMP
avec le CONNECT BY
état.
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;