ORDER SIBLINGS BY ๋?
ORDER SIBLINGS BY๋ Oracle SQL์์ ๊ณ์ธตํ ์ฟผ๋ฆฌ(Hierarchical Query)๋ฅผ ์ฌ์ฉํ ๋, ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ฐ์ง ํ์ ๋ ธ๋๋ค(Sibilings)์ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ด๋ CONNECT BY ์ ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ๊ณ์ธต ๊ตฌ์กฐ ๋ด์์ ๊ฐ์ ๋ ๋ฒจ(๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ณต์ ํ๋) ํ์ ๋ค๋ง ์ ๋ ฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๊ณ์ธตํ ์ฟผ๋ฆฌ์ ๊ธฐ๋ณธ ๊ฐ๋
Oracle์ ๊ณ์ธตํ ์ฟผ๋ฆฌ๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๊ฐ์ ๊ณ์ธต์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
CONNECT BY ์ ์ ์ฌ์ฉํ์ฌ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ์ ์ํ๊ณ , START WITH ์ ์ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ์ ๋ฃจํธ ๋ ธ๋๋ฅผ ์ง์ ํฉ๋๋ค.
- START WITH : ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์์ํ ๋ฃจํธ ๋ ธ๋๋ฅผ ์ง์ ํฉ๋๋ค.
- CONNECT BY PRIOR : ๋ถ๋ชจ์ ์์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํฉ๋๋ค.
ODER SIBLINGS BY ์ ์ญํ
- ORDER SIBLINGS BY๋ ๊ฐ ๊ณ์ธต ๋ ๋ฒจ์์ ํ์ ๋ ธ๋๋ค์ ์ ๋ ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ด ๊ตฌ๋ฌธ์ ORDER BY ์ ๊ณผ ์ ์ฌํ์ง๋ง, ๊ณ์ธต ๊ตฌ์กฐ์ ๋์ผํ ๋ ๋ฒจ(ํ์ ๋ ธ๋๋ค)์์๋ง ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๋๋ค.
- ์ฆ, ํธ๋ฆฌ ๊ตฌ์กฐ ์ ์ฒด๋ฅผ ์ ๋ ฌํ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ ๊ณ์ธต ๋ ๋ฒจ์์๋ง ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๋ฏ๋ก, ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ๋ณด์กด๋ ์ํ์์ ๋ ธ๋๋ค์ ์ํ๋ ์์๋ก ๋ณผ ์ ์์ต๋๋ค.
์์
ํ ์ด๋ธ TAB1 ์์ ๋ฐ์ดํฐ:
C1 | C2 | C3 |
1 | NULL | A |
2 | 1 | B |
3 | 1 | C |
4 | 2 | D |
5 | 2 | E |
6 | 3 | F |
7 | 3 | G |
์ฟผ๋ฆฌ
SELECT C3
FROM TAB1
START WITH C2 IS NULL
CONNECT BY PRIOR C1 = C2
ORDER SIBLINGS BY C3 DESC;
์ด ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์์ฑํฉ๋๋ค:
- ๋ฃจํธ ๋
ธ๋(C2 IS NULL): C1 = 1, C3 = A
- ์์ ๋
ธ๋: C1 = 2, C3 = B์ C1 = 3, C3 = C
- C1 = 2์ ์์: C1 = 4, C3 = D์ C1 = 5, C3 = E
- C1 = 3์ ์์: C1 = 6, C3 = F์ C1 = 7, C3 = G
- ์์ ๋
ธ๋: C1 = 2, C3 = B์ C1 = 3, C3 = C
ORDER SIBLINGS BY C3 DESC๊ฐ ์ ์ฉ๋ ๊ฒฐ๊ณผ:
- ๋ฃจํธ ๋ ๋ฒจ: A (C3 = A)
- ์ฒซ ๋ฒ์งธ ๋ ๋ฒจ์ ํ์ ๋
ธ๋: C (C3 = C), B (C3 = B) ← C3 DESC ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ๋ ๋ฒ์งธ ๋ ๋ฒจ์ ํ์ ๋ ธ๋ (B์ ์์): E (C3 = E), D (C3 = D) ← C3 DESC ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ๋ ๋ฒ์งธ ๋ ๋ฒจ์ ํ์ ๋ ธ๋ (C์ ์์): G (C3 = G), F (C3 = F) ← C3 DESC ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ์ฒซ ๋ฒ์งธ ๋ ๋ฒจ์ ํ์ ๋
ธ๋: C (C3 = C), B (C3 = B) ← C3 DESC ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
๊ฒฐ๊ณผ์ ์ผ๋ก, ์ ๋ ฌ๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
C3 |
A |
C |
G |
F |
B |
E |
D |
์์ฝ
- **ORDER SIBLINGS BY**๋ ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ฐ์ง ํ์ ๋ ธ๋๋ค๋ง์ ์ง์ ๋ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ ์ ์ ๋๋ค.
- ๊ณ์ธตํ ๋ฐ์ดํฐ์์ ์ ์ฒด ํธ๋ฆฌ์ ์์๋ฅผ ๋ฐ๊พธ์ง ์๊ณ , ๊ฐ ๋ ๋ฒจ์์ ํ์ ๋ ธ๋๋ค๋ง ์ ๋ ฌํฉ๋๋ค.
- ์ด ์ ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ฉด์ ๋ฐ์ดํฐ์ ์์๋ฅผ ๊ด๋ฆฌํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.