CONNECT BY の使い方

階層をたどる(Oracle)

書き方

SELECT LEVEL, … FROM 表 START WITH 根の条件 CONNECT BY PRIOR 親の列 = 子の列
ORDER SIBLINGS BY 列
SYS_CONNECT_BY_PATH(列, '/')
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= n

組織図のような木をたどります。LEVEL は深さ。PRIOR を付けた側が親です。

例

SELECT LPAD(' ', (LEVEL - 1) * 2) || name FROM emp START WITH manager_id IS NULL CONNECT BY PRIOR emp_id = manager_id;

実際に打って練習する

Oracle コースの Lv10「系譜をたどる CONNECT BY」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。

Oracle SQL・PL/SQL の構文一覧へ戻る