SQL Server verfügt nicht über CONNECT BY
. Sie müssen einen rekursiven CTE verwenden.
Platzieren Sie START WITH
im WHERE
Filter des Ankerteils (der erste Teil des CTE).
Verbinden Sie im rekursiven Teil (der zweiten Hälfte) den CTE wieder mit EMP
mit dem CONNECT BY
Zustand.
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;