SQL Server heeft geen CONNECT BY
. U moet een recursieve CTE gebruiken.
Plaats de START WITH
in de WHERE
filter van het ankergedeelte (het eerste deel van de CTE).
Voeg in het recursieve deel (de tweede helft) de CTE weer toe aan EMP
met de CONNECT BY
staat.
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;