SQLServerにはCONNECT BY
がありません 。再帰CTEを使用する必要があります。
START WITH
を配置します WHERE
アンカー部分(CTEの最初の部分)のフィルター。
再帰部分(後半)で、CTEをEMP
に再結合します。 CONNECT BY
を使用 状態。
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;