๊ณ์ธตํ ์ง์
2์ฐจ์ ๊ตฌ์กฐ์ ํ ์ด๋ธ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ธตํ ๊ตฌ์กฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
SELECT select_list FROM table_name
[ WHERE condition ]
START WITH condition
CONNECT BY [ NOCYCLE ] [PRIOR condition]
[ ORDER [ SIBLINGS] BY expr ]
TOP-DOWN
SELECT num, subject, LEVEL, parent
FROM soft
START WITH num = 1
CONNECT BY PRIOR num = parent; -- ๊ณ์ธต ๊ด๊ณ ์ง์
START WITH ์ถ๋ ฅ์ ์์ํ ์ต์์ ํ
PRIOR ๋ถ๋ชจํ์ ์๋ณํ๋๋ฐ ์ฌ์ฉ
CONNECT BY PRIOR num = parent ๋(num)์ ๋ถ๋ชจ(parent)๋ก ์ฌ์ฉํ๋ ํ
parent ์์์ ๋ณด๋ฅผ ๊ฐ์ง ์ปฌ๋ผ
LEVEL ๊ฒ์๋ ๊ฒฐ๊ณผ์ ๊ณ์ธต๋ณ๋ก ๋ถ์ฌ๋๋ ๋ฒํธ
์คํ ์์
โ ์กฐ์ธ์ด ์์ผ๋ฉด ์กฐ์ธ์ ๋จผ์ ์ฒ๋ฆฌ
โก START WITH ์ ์ ์ฐธ์กฐํ์ฌ ์ต์์ ๊ณ์ธต ํ(row) ์ ํ
โข CONNECT BY ์ ์์ ๋ช
์ํ ๊ตฌ๋ฌธ์ ๋ฐ๋ผ ๊ณ์ธต(๋ถ๋ชจ-์์ ๊ด๊ณ)๋ฅผ ํ์
ํ์ฌ ์์ ๋ก์ฐ๋ฅผ ์ฐจ๋ก๋ก ์ ํ.
์ต์์ ๋ก์ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ๋ก์ฐ๋ฅผ ์ ํํ๊ณ , ์ด ์์ ๋ก์ฐ๊ฐ ์์์ด ์์ผ๋ฉด ์์์ ์ ํ
โฃ์์ ๋ก์ฐ ์ฐพ๊ธฐ๊ฐ ๋๋ฌ์ผ๋ฉด WHERE ์กฐ๊ฑด์ ๋ง์กฑํ ๋ฐ์ดํฐ๋ง ์ถ๋ ฅ
'๐ปProgramming > ๐ฝOracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[PL/SQL] (0) | 2022.08.17 |
---|---|
[Oracle] PIVOT๊ณผ UNPIVOT (0) | 2022.08.15 |
[Oracle] ๋ทฐ (0) | 2022.08.12 |
[Oracle] ์๋ธ์ฟผ๋ฆฌ (0) | 2022.08.11 |
[Oracle] ์กฐ์ธ (0) | 2022.08.11 |