DB
[Oracle] DECODE ์ CASE ๋น๊ต
natrue
2021. 5. 27. 10:35
728x90
DECODE ํจ์
DECODE๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ๋ IF~ ELSE๋ฌธ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ SQL ํจ์์ด๋ค.
DECODE ํจ์๋ Oracle์์ ์ ๊ณตํ๋ ์กฐ๊ฑด ๋น๊ต ํจ์ = ๋ค๋ฅธ SQL์ ์ฌ์ฉ์ด ๋ถ๊ฐํ๋ค.
DECODE ํจ์๋ ์กฐ๊ฑด๊ฐ๊ณผ ๊ฐ์์ง์ ์ฌ๋ถ๋ง ํ์ธ, ์ฆ ๋๋ฑ ๋น๊ต๋ง ํ ์ ์๋ค.
DECODE ํจ์๋ ์กฐ๊ฑด์ด 255๊ฐ๊น์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
DECODE( {๋์}, {๋น๊ต ๊ฐ 1}, {๊ฒฐ๊ด๊ฐ 1}, {๋น๊ต ๊ฐ 2}, {๊ฒฐ๊ด๊ฐ 2}, ... , {๋น๊ต ๊ฐ N}, {๊ฒฐ๊ด๊ฐ N}, {๋๋จธ์ง ๊ฐ} )
CASE ๊ตฌ๋ฌธ
CASE๋ฌธ์ ์ด๋ SQL์ด๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
CASE๋ฌธ์์๋ WHEN ์ดํ์ ์กฐ๊ฑด๋ฌธ์ ์์ฑ, DECODE ๋ณด๋ค ํ์ฅ๋ ๊ธฐ๋ฅ (์กฐ๊ฑด ๋น๊ต๊ฐ ๊ฐ๋ฅ)์ ์ ๊ณตํ๋ค.
CASE๋ฌธ์ DECODE ๋ณด๋ค ์ข ๋ ์ฌ์ธํ๊ฒ ์กฐ๊ฑด์ ์ค ์ ์๋ค.
CASE
WHEN {์กฐ๊ฑด 1} THEN {๊ฒฐ๊ณผ๊ฐ 1}
WHEN {์กฐ๊ฑด 2} THEN {๊ฒฐ๊ณผ๊ฐ 2}
...
WHEN {์กฐ๊ฑด N} THEN {๊ฒฐ๊ณผ๊ฐ N}
ELSE {๋๋จธ์ง ๊ฐ}
END