κ³μΈ΅ν 쿼리
κ³μΈ΅μ μΈ λ°μ΄ν° ꡬ쑰μμ λΆλͺ¨-μμ κ΄κ³λ₯Ό κ°μ§ λ°μ΄ν°λ₯Ό κ²μνκ±°λ μ‘°μνλ 쿼리
λ¬Έλ²
SELECT [ννμλ€]
FROM [ν
μ΄λΈλͺ
]
START WITH [μμ 쑰건]
CONNECT BY [μ¬κ· 쑰건];
SQL
볡μ¬
β’
κΈ°λ³Έ κ΅¬μ± μμ
ꡬ문 | μ€λͺ
|
SELECT [ννμλ€] | μ‘°νν μ΄μ μ§μ ν©λλ€. κ³μΈ΅ ꡬ쑰λ₯Ό νννκΈ° μν μ΄κ³Ό μΆκ°μ μΈ μ΄μ΄ ν¬ν¨λ μ μμ΅λλ€. |
FROM [ν
μ΄λΈλͺ
] | κ³μΈ΅ν 쿼리λ₯Ό μνν λμ ν
μ΄λΈμ μ§μ ν©λλ€. |
START WITH [μμ 쑰건] | κ³μΈ΅ ꡬ쑰μ μμμ μ μ μν©λλ€. μ§μ λ 쑰건μ λ§μ‘±νλ νμ΄ μμμ μ΄ λ©λλ€. |
CONNECT BY [μ¬κ· 쑰건] | μ¬κ·μ μΈ κ΄κ³λ₯Ό μ μν©λλ€. μ§μ λ 쑰건μ λ§μ‘±νλ νμ΄ μ΄μ νκ³Ό μ°κ²°λμ΄ κ³μΈ΅ ꡬ쑰λ₯Ό νμ±ν©λλ€. |
PRIOR | CONNECT BY μ κ³Ό ν¨κ» μ¬μ©λλ©°, μ΄μ νμ μλ―Ένλ ν€μλμ΄λ€.
|
β’
CONNECT BY ν€μλ
ν€μλ λ° ν¨μ | μ€λͺ
|
CONNECT BY | κ³μΈ΅μ 쿼리λ₯Ό μ μνκΈ° μν ν€μλλ‘, λΆλͺ¨-μμ κ°μ κ΄κ³λ₯Ό μ§μ ν©λλ€. |
LEVEL | νμ¬ νμ κ³μΈ΅ λ 벨μ λνλ΄λ μμ¬ μ΄μ
λλ€. |
CONNECT_BY_ROOT | κ³μΈ΅ ꡬ쑰μμ μ΅μμ λΆλͺ¨λ₯Ό λνλ΄λ μμ¬ μ΄μ
λλ€. |
CONNECT_BY_ISLEAF | νμ¬ νμ΄ λ¦¬ν(λ§λ¨) λ
ΈλμΈμ§ μ¬λΆλ₯Ό νλ³νλ μμ¬ μ΄μ
λλ€. |
SYS_CONNECT_BY_PATH | κ³μΈ΅μ 쿼리μμ νμ κ²½λ‘λ₯Ό λνλ΄λ ν¨μμ
λλ€. |
NOCYCLE | μν(cycle)μ λ°©μ§νκΈ° μν μ΅μ
μ
λλ€. |
CONNECT_BY_ISCYCLE | νμ¬ νμ΄ μν ꡬ쑰μ μλμ§ μ¬λΆλ₯Ό νλ³νλ μμ¬ μ΄μ
λλ€. |
ORDER BY SIBLINGS BY μ»¬λΌ | κ°μ LEVEL λ
Έλ μ¬μ΄μμ μ λ ¬μ μνν©λλ€. |
κ³μΈ΅ν μΏΌλ¦¬λ‘ μ‘°μ§λλ₯Ό μΆλ ₯νλ μμ μ½λ
SELECT LEVEL
, employee_id
, first_name
, last_name
, job_id
, manager_id
FROM employees
START WITH manager_id IS NULL
CONNECT BY PRIOR employee_id = manager_id;
SQL
볡μ¬
β’
START WITH manager_id IS NULL: μ΅μμ λΆμμ μ§μλ€μ μ νν©λλ€. μ¬κΈ°μλ μ΅μμ μ§μμ΄ λ§€λμ κ° μλ μ§μλ€μ
λλ€.
β’
CONNECT BY PRIOR employee_id = manager_id: κ° νμ μ΄μ νκ³Ό μ°κ²°ν©λλ€. μ΄μ ν(PRIOR)μ employee_idκ° νμ¬ νμ manager_idμ κ°μ κ²½μ°, κ³μΈ΅μ μΌλ‘ μ°κ²°λ©λλ€.
β’
LEVEL: κ° νμ κ³μΈ΅ λ 벨μ λνλ
λλ€.
β¦
1 : λν
β¦
2 : λΆμμ₯ (μμ¬)
β¦
3 : μ§μ (λΆν)


