1. DECODE ํจ์
- ๊ธฐ์ค์ด ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ง์ ํ ํ ํด๋น ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐํํ๋ ํจ์
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ๋ if ์กฐ๊ฑด๋ฌธ ๋๋ switch-case ๋ฌธ๊ณผ ์ ์ฌ
- ๋ง์ง๋ง์ '์ ์กฐ๊ฑด 1~n๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐํํ ๊ฒฐ๊ณผ' ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด NULL ๋ฐํ
- ์กฐ๊ฑด๋ณ๋ก ๋์ผํ ์๋ฃํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํด์ผ ํจ
DECODE([๊ฒ์ฌ ๋์์ด ๋ ์นผ๋ผ or ๋ฐ์ดํฐ / ์ฐ์ฐ์ด๋ ํจ์์ ๊ฒฐ๊ณผ],
[์กฐ๊ฑด 1], [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด 1๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ],
[์กฐ๊ฑด 2], [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด 2๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ],
… …
[์กฐ๊ฑด n], [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด n๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ],
[์ ์กฐ๊ฑด 1~n๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐํํ ๊ฒฐ๊ณผ])
-- 1.
SELECT EMPNO, ENAME, JOB, SAL,
DECODE(JOB,
'MANAGER' , SAL*1.1,
'SALESMAN', SAL*1.05,
'ANALYST' , SAL,
SAL*1.03) AS UPSAL
FROM EMP;
(1) JOB ์ด MANAGER ์ธ ๊ฒฝ์ฐ SAL*1.1์, SALESMAN ์ธ ๊ฒฝ์ฐ SAL*1.05์, ANALYST ์ธ ๊ฒฝ์ฐ SAL์, ๊ทธ ์ธ์๋ SAL*1.03 ์ ๋ฐํ
2. CASE ๋ฌธ
- DECODE ํจ์์ ๊ฐ์ด ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐํํ ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ ๋ ์ฌ์ฉ
- ๊ธฐ์ค ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋์ ๋ช ์ํ๊ณ ๊ทธ ๊ฐ์ ๋ฐ๋ผ ๋ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ DECODE ํจ์์ ๋ฌ๋ฆฌ CASE๋ฌธ์ ๊ฐ ์กฐ๊ฑด์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๊ฐ ์๋ก ์๊ด ์์ด๋ ๊ฐ๋ฅ
- DECODE ํจ์๋ ๋ชจ๋ CASE ๋ฌธ์ผ๋ก ๋ฐ๊ฟ ์ ์์ง๋ง CASE ๋ฌธ์ DECODE ํจ์๋ก ๋ชจ๋ ํํํ ์ ์๋ค. CASE ๋ฌธ์ ๋ฒ์ฉ์ฑ์ด ๋ ๋์
- ์กฐ๊ฑด๋ณ๋ก ๋์ผํ ์๋ฃํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํด์ผ ํจ
CASE [๊ฒ์ฌ ๋์์ด ๋ ์นผ๋ผ or ๋ฐ์ดํฐ / ์ฐ์ฐ์ด๋ ํจ์์ ๊ฒฐ๊ณผ(์ ํ)]
WHEN [์กฐ๊ฑด 1] THEN [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด 1๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ]
WHEN [์กฐ๊ฑด 2] THEN [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด 2๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ]
… …
WHEN [์กฐ๊ฑด n] THEN [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด n๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ]
ELSE [์ ์กฐ๊ฑด 1~n๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐํํ ๊ฒฐ๊ณผ])
END
-- 1.
SELECT EMPNO, ENAME, JOB, SAL,
CASE JOB
WHEN 'MANAGER' THEN SAL*1.1
WHEN 'SALESMAN' THEN SAL*1.05
WHEN 'ANALYST' THEN SAL
ELSE SAL*1.03
END AS UPSAL
FROM EMP;
-- 2. ๊ธฐ์ค ๋ฐ์ดํฐ ์์ด ์กฐ๊ฑด์๋ง์ผ๋ก CASE๋ฌธ ์ฌ์ฉํ๊ธฐ
SELECT EMPNO, ENAME, COMM,
CASE WHEN COMM IS NULL THEN 'ํด๋น์ฌํญ ์์'
WHEN COMM = 0 THEN '์๋น ์์'
WHEN COMM > 0 THEN '์๋น : ' || COMM
ELSE SAL*1.03
END AS COMM_TEXT
FROM EMP;
(1) JOB ์ด MANAGER ์ธ ๊ฒฝ์ฐ SAL*1.1์, SALESMAN ์ธ ๊ฒฝ์ฐ SAL*1.05์, ANALYST ์ธ ๊ฒฝ์ฐ SAL์, ๊ทธ ์ธ์๋ SAL*1.03 ์ ๋ฐํ
(2) COMM ์นผ๋ผ ๊ฐ์ด NULL์ธ ๊ฒฝ์ฐ, 0์ธ ๊ฒฝ์ฐ, 0์ ์ด๊ณผํ ๊ฒฝ์ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐํ ๋ฐ์ดํฐ๋ฅผ ์ง์