SQL Server non dispone di CONNECT BY
. Devi usare un CTE ricorsivo.
Inserisci il START WITH
nel WHERE
filtro della parte di ancoraggio (la prima parte del CTE).
Nella parte ricorsiva (la seconda metà), unisci nuovamente il CTE a EMP
con il CONNECT BY
condizione.
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;