NULL ๊ด๋ จ ํจ์
NVL( ์ธ์1, ์ธ์2 ) | ์ธ์1์ด NULL ์ด๋ฉด, ์ธ์2๋ฅผ ๋ฐํํ๋ ํจ์ |
NVL2( ์ธ์1, ์ธ์2, ์ธ์3 ) | ์ธ์1์ด NULL์ด ์๋๋ฉด ์ธ์2, NULL ์ด๋ฉด ์ธ์3์ ๋ฐํํ๋ ํจ์ |
COALESCE( ์ธ์1, ์ธ์2, ... ) | ์ธ์๋ค ์ค NULL ์ด ์๋ ์ฒซ๋ฒ์งธ ๊ฐ์ ๋ฐํํ๋ ํจ์
ex) ์ธ์1 : NULL, ์ธ์2 : NULL, ์ธ์3 : (๊ฐ)
์ถ๋ ฅ : ์ธ์3 |
LNNVL(์กฐ๊ฑด์) | ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ
i) TRUE --> FALSE,
ii) NULL, FALSE --> TRUE ๋ก ๋ณํํ๋ ํจ์ |
NULLIF( ์ธ์1, ์ธ์2 ) | ์ธ์1๊ณผ ์ธ์2๊ฐ ๊ฐ์ผ๋ฉด NULL
์ธ์1๊ณผ ์ธ์2๊ฐ ๋ค๋ฅด๋ฉด ์ธ์1์ ๋ฐํํ๋ ํจ์ |
HR ์คํค๋ง ์ค์ต์ฝ๋
COALESCE()
SELECT employee_id ์ฌ์๋ฒํธ
,first_name ์ด๋ฆ
,COALESCE( salary + (salary * commission_pct), salary, 0 ) ์ต์ข
๊ธ์ฌ
,commission_pct
FROM employees;
SQL
๋ณต์ฌ
LNNVL(์กฐ๊ฑด์)
SELECT employee_id, commission_pct
FROM employees
WHERE LNNVL(commission_pct >= 0.2);
SQL
๋ณต์ฌ
SELECT employee_id, commission_pct
FROM employees
WHERE NVL(commission_pct, 0) < 0.2;
SQL
๋ณต์ฌ
SELECT employee_id, commission_pct
FROM employees
WHERE commission_pct < 0.2;
SQL
๋ณต์ฌ
NULLIF()
SELECT employee_id
,TO_CHAR(start_date, 'YYYY') start_year
,TO_CHAR(end_date, 'YYYY') end_year
,NULLIF(TO_CHAR(end_date, 'YYYY'), TO_CHAR(start_date, 'YYYY')) nullif_year
FROM job_history;
SQL
๋ณต์ฌ