web developer๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[Oracle] DECODE ์™€ CASE ๋น„๊ต ๋ณธ๋ฌธ

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