๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜์— ๋Œ€ํ•œ ์˜ค๋ผํด decode ํ•จ์ˆ˜ ํ™œ์šฉ

์˜ค๋ผํด Decode ํ•จ์ˆ˜

์˜ค๋ผํด์—์„œ๋Š” DECODE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DECODE ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

DECODE(expression, search1, result1, search2, result2, ..., default)

์œ„ ๊ตฌ๋ฌธ์—์„œ expression์€ ๊ฒ€์‚ฌํ•  ๊ฐ’์ด๊ณ , search๋Š” ํ•ด๋‹น ๊ฐ’๊ณผ ๋น„๊ตํ•  ๊ฐ’์ด๋ฉฐ, result๋Š” ํ•ด๋‹น ๊ฐ’๊ณผ ๋น„๊ตํ•  ๊ฐ’์ด ์ผ์น˜ํ•  ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ํ•  ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. default๋Š” ๋ชจ๋“  ๊ฒ€์ƒ‰ ๊ฐ’์ด ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ํ•  ๊ธฐ๋ณธ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL ๋ฌธ์„ ์ƒ๊ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

SELECT emp_name, 
       DECODE(department_id, 
              10, 'IT', 
              20, 'HR', 
              'Other') AS department 
  FROM employees;

์œ„ SQL ๋ฌธ์—์„œ๋Š” employees ํ…Œ์ด๋ธ”์—์„œ emp_name๊ณผ department_id๋ฅผ ์กฐํšŒํ•˜๋ฉด์„œ department_id ๊ฐ’์ด 10์ด๋ฉด 'IT', 20์ด๋ฉด 'HR', ๊ทธ ์™ธ์˜ ๊ฐ’์ด๋ฉด 'Other'๋ฅผ department ์ปฌ๋Ÿผ์— ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

DECODE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด ๋งค์šฐ ์œ ์šฉํ•œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’์ด ํ•„์š”ํ•  ๋•Œ DECODE ํ•จ์ˆ˜๋ฅผ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ํšจ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.