[20220228 TIL] [ORACLE] ํน์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ํ์ ๋จผ์ ๋ณด์ฌ์ฃผ๋ ์ฟผ๋ฆฌ (case๋ฌธ ์ฌ์ฉ)
ํญ์ ์ ๋ชฉ์ ์ง๋๊ฒ ๊ฐ์ฅ ํ๋ ๊ฒ ๊ฐ๋ค..
๋ ์๋ฅผ ๋ค์ด๋ด์ผ๊ฒ ๋ค.
ํ๊ต์ ํ์ ์ ๋ณด๊ฐ ๋ด๊ฒจ ์๋ STUDENT ์ด๋ผ๋ ํ
์ด๋ธ์ด ์๋ค.
์ด ์ค์์ ๋ฐ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋ CLASSINFO ์นผ๋ผ์๋ 1~9๊ฐ ๋ค์ด๊ฐ ์๋ค.
์ด ๋ทฐ๋ ๋ชจ๋ ์ ์๋๋ค์ด ๊ณตํต์ผ๋ก ๋ณผ ๊ฑด๋ฐ, ๊ฐ ์ ์๋๋ค์ด ๋ด์์ ๋งก๊ณ ์๋ ๋ฐ์ ๋ณด๊ฐ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์ค๊ฒ ๋๋ค.
2๋ฐ ์ ์๋์ 2๊ฐ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ๋ค. ์ด ๋ทฐ์์๋ 2๋ฐ ๋ด์์ด๋ผ๋ฉด 2๋ฐ ํ์๋ค์ ๋จผ์ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ์ ๋ฌผ๋ก ORDER BY CLASSINFO ๋ฅผ ์ฐ์ง ๋ชปํ๋ค.
์ด๋ด ๋ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.. ๋ ์ข์ ์ฟผ๋ฆฌ๊ฐ ์์ ์ ์์ง๋ง ๋ด๊ฐ ์๊ฐํด ๋ณธ๊ฑฐ.
SELECT
CASE WHEN a.classinfo = :classinfo THEN '1'
ELSE '2'
END AS gubun
, a.*
FROM STUDENT a
ORDER BY gubun
๊ทธ๋ฅ ์ด๋ ๊ฒ ์์๋ก gubun์ด๋ผ๋ ์ด์ ๋ง๋ค์ด์ 1,2 ๊ตฌ๋ถ๊ฐ์ ์ฃผ์๋ค.
๋ฐ๋ก order by๋ฅผ ์ฃผ์ง์๋ ์ด์ 1์ด ์์ ๋์ค๋๊ฑด ๋ถ๋ช ํ์ง๋ง,
๊ทธ๋ฅ ํน์ ๋ชฐ๋ผ ์ ์ด๋ณด์๋ค.
๋!