์ฝ๊ฒ ๊ธฐ์ตํ๋ ๋ฐฉ๋ฒ
1. NVL - "Null Value Left"
- ์ค๋ช : NVL์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด NULL์ผ ๋, ๋ ๋ฒ์งธ ๊ฐ์ ์ผ์ชฝ(Left)์ผ๋ก ๊ฐ์ ธ์ต๋๋ค.
- ์ธ์ฐ๊ธฐ: "NVL์ Null์ Value๋ก Left (์ผ์ชฝ์ผ๋ก ๋์ด์ ๋์ฒด)."
- ๋น์ : ๋ง์ฝ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ๋น์ด ์์ผ๋ฉด, ์์ ์๋ ๋ ๋ฒ์งธ ๊ฐ์ ๊ฐ์ ธ๋ค ์ฑ์ ๋ฃ๋๋ค๊ณ ์๊ฐํ์ธ์.
2. NVL2 - "Null Value, 2 Outcomes"
- ์ค๋ช : NVL2๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ด NULL์ด๋ฉด ๋ ๋ฒ์งธ ๊ฐ์ ๋ฐํํ๊ณ , NULL์ด ์๋๋ฉด ์ธ ๋ฒ์งธ ๊ฐ์ ๋ฐํํฉ๋๋ค.
- ์ธ์ฐ๊ธฐ: "NVL2๋ Null Value์์ Left์ Right๋ก 2๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ."
- ๋น์ : ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์๋๋ ์๋๋์ ๋ฐ๋ผ ๋ ๊ฐ์ง ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๊ณ ๊ธฐ์ตํ์ธ์.
3. ISNULL - "Is It Null?"
- ์ค๋ช : ISNULL์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด NULL์ธ์ง ํ์ธํ๊ณ , ๊ทธ๋ ๋ค๋ฉด ๋ ๋ฒ์งธ ๊ฐ์ ๋ฐํํฉ๋๋ค.
- ์ธ์ฐ๊ธฐ: "ISNULL์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด NULL์ธ์ง ํ์ธํ๋ค. 'Is it null?'"
- ๋น์ : "์ด๊ฒ NULL์ธ๊ฐ?"๋ผ๊ณ ๋ฌผ์ด๋ณด๊ณ , ๊ทธ๋ ๋ค๋ฉด ๋์ฒด ๊ฐ์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ์ธ์.
4. NULLIF - "Null If Equal"
- ์ค๋ช : NULLIF๋ ๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด NULL์ ๋ฐํํฉ๋๋ค.
- ์ธ์ฐ๊ธฐ: "NULLIF๋ ๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด NULL์ ๋ฐํํ๋ค. 'Null If equal.'"
- ๋น์ : "๋ง์ฝ ๋ ๊ฐ์ด ๊ฐ๋ค(g=๊ฐ๋ค)๋ฉด, ๊ฒฐ๊ณผ๋ NULL์ด ๋๋ค."๋ผ๊ณ ๊ธฐ์ตํ์ธ์.
5. COALESCE - "Collect Or Alternate"
- ์ค๋ช : COALESCE๋ ์ฌ๋ฌ ๊ฐ ์ค์์ ์ฒซ ๋ฒ์งธ๋ก NULL์ด ์๋ ๊ฐ์ ๋ฐํํฉ๋๋ค.
- ์ธ์ฐ๊ธฐ: "COALESCE๋ ์ฌ๋ฌ ๊ฐ ์ค ์ฒซ ๋ฒ์งธ NULL์ด ์๋ ๊ฐ์ ๊ณ ๋ฅธ๋ค. 'Collect or choose an alternative.'"
- ๋น์ : "COALESCE๋ ์ฌ๋ฌ ํญ๋ชฉ ์ค์์ ๊ฐ์ฅ ๋จผ์ ์ฌ์ฉํ ์ ์๋(์ฆ, NULL์ด ์๋) ๊ฒ์ ๊ณ ๋ฅธ๋ค."๋ผ๊ณ ๊ธฐ์ตํ์ธ์.
1. NVL (Oracle ์ ์ฉ)
NVL ํจ์๋ Oracle์์ ์ฌ์ฉ๋๋ฉฐ, ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ NULL์ผ ๊ฒฝ์ฐ, ๋๋ฒ์งธ ์ธ์๋ก ๋์ฒดํฉ๋๋ค.
์์: NVL(expr1, expr2)
SELECT NVL(Salary, 0) AS FinalSalary
FROM Employees;
- Salary ์ด์ ๊ฐ์ด NULL ์ด๋ฉด 0์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ Salary ๊ฐ์ ๋ฐํํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์๊ธ์ด ์๋ ๊ฒฝ์ฐ(= NULL), 0์ผ๋ก ๋์ฒด๋์ด ์ถ๋ ฅ๋ฉ๋๋ค.
2. NVL2 (Oracle ์ ์ฉ)
NVL2 ํจ์๋ Oracle์์ ์ฌ์ฉ๋๋ฉฐ, ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ NULL์ด ์๋๋ฉด ๋ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐํํ๊ณ , NULL ์ด๋ฉด ์ธ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐํํฉ๋๋ค.
์์: NVL2(expr1, expr2, expr3)
SELECT NVL2(Commission, Commission, 0) AS FinalCommission
FROM Sales;
- Commission ๊ฐ์ด NULL ์ด ์๋๋ฉด ์๋ Commission ๊ฐ์ ๋ฐํํ๊ณ NULL ์ด๋ฉด 0 ์ ๋ฐํํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ปค๋ฏธ์ ์ด NULL์ธ ๊ฒฝ์ฐ 0์ผ๋ก ๋์ฒด๋ฉ๋๋ค.
3. ISNULL (SQL Server ์ ์ฉ)
ISNULL ํจ์๋ SQL Server์์ ์ฌ์ฉ๋๋ฉฐ, ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ NULL์ผ ๊ฒฝ์ฐ, ๋ ๋ฒ์งธ ์ธ์๋ก ๋์ฒดํฉ๋๋ค.
Oracle์ NVL๊ณผ ์ ์ฌํ๊ฒ ์๋ํฉ๋๋ค.
์์: ISNULL(expr1, expr2)
SELECT ISNULL(Bonus, 500) AS FinalBonus
FROM Sales;
- Bonus ๊ฐ์ด NULL์ด๋ฉด 500์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ Bonus ๊ฐ์ ๋ฐํํฉ๋๋ค.
4. NULLIF (๋ชจ๋ DBMS ์ง์)
NULLIF ํจ์๋ ๋ ์ธ์๊ฐ ๋์ผํ๋ฉด NULL์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐํํฉ๋๋ค.
์์: NULLIF(expr1, expr2)
SELECT NULLIF(Salary, 0) AS AdjustedSalary
FROM Employees;
- Salary ๊ฐ์ด 0์ด๋ฉด NULL์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋์ Salary ๊ฐ์ ๋ฐํํฉ๋๋ค.
- Salary ๊ฐ์ด 0์ด๋ฉด NULL๋ก ๋์ฒด๋ฉ๋๋ค
5. COALESCE (๋ชจ๋ DBMS ์ง์)
COALESCE ํจ์๋ ์ฌ๋ฌ ์ธ์๋ฅผ ๋ฐ์ ์ฒซ ๋ฒ์งธ๋ก NULL์ด ์๋ ๊ฐ์ ๋ฐํํฉ๋๋ค.
์ด ํจ์๋ ์ฌ๋ฌ ๋์ฒด ๊ฐ์ ์์๋๋ก ์ง์ ํ ์ ์์ด ๋งค์ฐ ์ ์ฐํฉ๋๋ค.
์์: COALESCE(expr1, expr2, ..., exprN)
SELECT COALESCE(Bonus, Commission, 0) AS FinalBonus
FROM Sales;
- Bonus๊ฐ NULL์ด๋ฉด Commission์ ๋ฐํํ๊ณ , Commission๋ NULL์ด๋ฉด 0์ ๋ฐํํฉ๋๋ค.
- ๋ณด๋์ค์ ์ปค๋ฏธ์ ์ด ๋ชจ๋ ์๋ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก 0์ด ํ์๋ฉ๋๋ค.