1. NVL ν¨μλ?
NVL ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ€λ₯Έ κ°μΌλ‘ λ체νλ κΈ°λ₯μ μ 곡ν©λλ€.
2. NVL ν¨μμ μ¬μ©λ²
NVL ν¨μλ λ€μκ³Ό κ°μ νμμΌλ‘ μ¬μ©λ©λλ€:
NVL(μ€νν μ, μΉνκ°)
μ€νν μ
: NULLμΈμ§ νμΈνκ³ μ νλ κ° λλ ννμμ λλ€.μΉνκ°
: μ€νν μμ΄ NULLμΈ κ²½μ° λμ²΄λ‘ μ¬μ©ν κ°μ λλ€.
3. NVL ν¨μμ μμ
λ€μμ NVL ν¨μλ₯Ό μ¬μ©νλ μμ μ λλ€:
SELECT name, NVL(age, 'Unknown') AS replaced_age
FROM employees;
μμ μμ μμλ employees
ν
μ΄λΈμ age
μ΄μ μ‘°ννλλ°, λ§μ½ age
κ° NULLμ΄λΌλ©΄ 'Unknown'μΌλ‘ λ체λμ΄ μΆλ ₯λ©λλ€.
4. NVL2 ν¨μλ?
NVL2 ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ°λΌ λ€λ₯Έ κ° λ κ°λ₯Ό λ°ννλ κΈ°λ₯μ μ 곡ν©λλ€.
5. NVL2 ν¨μμ μ¬μ©λ²
NVL2 ν¨μλ λ€μκ³Ό κ°μ νμμΌλ‘ μ¬μ©λ©λλ€:
NVL2(μ€νν μ, λ°νκ°1, λ°νκ°2)
μ€νν μ
: NULLμΈμ§ νμΈνκ³ μ νλ κ° λλ ννμμ λλ€.λ°νκ°1
: μ€νν μμ΄ NULLμ΄ μλ κ²½μ° λ°νλ κ°μ λλ€.λ°νκ°2
: μ€νν μμ΄ NULLμΈ κ²½μ° λ°νλ κ°μ λλ€.
6. NVL2 ν¨μμ μμ
λ€μμ NVL2 ν¨μλ₯Ό μ¬μ©νλ μμ μ λλ€:
SELECT name, NVL2(department, 'Assigned', 'Not Assigned') AS assignment_status
FROM employees;
μμ μμ μμλ employees
ν
μ΄λΈμ department
μ΄μ μ‘°ννλλ°, λ§μ½ department
κ° NULLμ΄ μλλΌλ©΄ 'Assigned'λ‘, NULLμ΄λΌλ©΄ 'Not Assigned'λ‘ λ체λμ΄ μΆλ ₯λ©λλ€.
1. NVL ν¨μλ?
NVL ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ€λ₯Έ κ°μΌλ‘ λ체νλ κΈ°λ₯μ μ 곡ν©λλ€. NULLμ λ°μ΄ν°μ λΆμ¬λ₯Ό λνλ΄λ νΉλ³ν κ°μΌλ‘, κ°μ΄ μμμ μλ―Έν©λλ€. NVL ν¨μλ NULL κ°μ λ€λ₯Έ κ°μΌλ‘ λ체νμ¬ λ°μ΄ν°μ 무결μ±μ μ μ§νκ³ , λ°μ΄ν° μ²λ¦¬ μμ μ ν¨μ¨μ μΌλ‘ μνν μ μλλ‘ λμμ€λλ€.
NULL κ°μ 쿼리 κ²°κ³Ό, ν¨μμ μΈμ, ν μ΄λΈ μ΄ λ±μμ λ°μν μ μμ΅λλ€. NVL ν¨μλ μ΄λ¬ν NULL κ°μ λ€λ₯Έ μ ν¨ν κ°μΌλ‘ λ체νμ¬ μΆλ ₯ κ²°κ³Όμ μνλ κ°μ νμν©λλ€. NVL ν¨μλ μ€νν μ(μΈμ)μ΄ NULLμΈ κ²½μ° μΉνκ°μΌλ‘ λ체λμ΄ κ²°κ³Όλ‘ λ°νλ©λλ€.
NVL ν¨μμ κΈ°λ³Έμ μΈ νμμ λ€μκ³Ό κ°μ΅λλ€:
NVL(μ€νν μ, μΉνκ°)
μ€νν μ
: NULLμΈμ§ νμΈνκ³ μ νλ κ° λλ ννμμ λλ€.μΉνκ°
: μ€νν μμ΄ NULLμΈ κ²½μ° λμ²΄λ‘ μ¬μ©ν κ°μ λλ€.
μλ₯Ό λ€μ΄, employees
ν
μ΄λΈμμ age
μ΄μ κ°μ΄ NULLμ΄λΌλ©΄ 'Unknown'μΌλ‘ λ체νμ¬ μΆλ ₯νκ³ μΆλ€λ©΄, λ€μκ³Ό κ°μ΄ NVL ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€:
SELECT name, NVL(age, 'Unknown') AS replaced_age
FROM employees;
μ΄λ κ² μ¬μ©νλ©΄, NULLμΈ κ²½μ° 'Unknown'μΌλ‘ λ체λ κ°μ μΆλ ₯ν μ μμ΅λλ€. NVL ν¨μλ λ°μ΄ν°μ μ²λ¦¬λ₯Ό μ μ°νκ² νκ³ NULL κ°μ λν λμμ ν¨κ³Όμ μΌλ‘ μ 곡νμ¬ λ°μ΄ν°μ 무결μ±μ μ μ§ν μ μμ΅λλ€.
2. NVL ν¨μμ μ¬μ©λ²
NVL ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ€λ₯Έ κ°μΌλ‘ λ체νλ κΈ°λ₯μ μ 곡ν©λλ€. μ΄ ν¨μμ μ¬μ©λ²μ μλμ κ°μ΅λλ€:
NVL(μ€νν μ, μΉνκ°)
μ€νν μ
μ NULLμΈμ§ νμΈνκ³ μ νλ κ° λλ ννμμ λλ€.μΉνκ°
μ μ€νν μμ΄ NULLμΈ κ²½μ° λμ²΄λ‘ μ¬μ©ν κ°μ λλ€.
NVL ν¨μλ μ€νν μμ κ°μ΄ NULLμΈμ§ νμΈνκ³ , λ§μ½ NULLμΈ κ²½μ° μΉνκ°μ λ°νν©λλ€. μ€νν μμ΄ NULLμ΄ μλ κ²½μ°μλ μ€νν μμ κ°μ κ·Έλλ‘ λ°νν©λλ€.
μλ₯Ό λ€μ΄, employees
ν
μ΄λΈμμ age
μ΄μ κ°μ μ‘°ννλλ°, λ§μ½ age
κ° NULLμ΄λΌλ©΄ 'Unknown'μΌλ‘ λ체νμ¬ μΆλ ₯νλ €λ©΄ λ€μκ³Ό κ°μ΄ NVL ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€:
SELECT name, NVL(age, 'Unknown') AS replaced_age
FROM employees;
μμ μμ μμλ employees
ν
μ΄λΈμ age
μ΄μ μ‘°ννκ³ NVL ν¨μλ₯Ό μ¬μ©νμ¬ NULLμΈ κ²½μ°μλ 'Unknown'μΌλ‘ μΆλ ₯λ©λλ€.
NVL ν¨μλ λ°μ΄ν°μ μ²λ¦¬λ₯Ό μ μ°νκ² νκ³ , NULL κ°μ λν λμμ ν¨κ³Όμ μΌλ‘ μ 곡ν©λλ€. λ°μ΄ν°λ² μ΄μ€μμ NULL κ°μ λ°μ΄ν° λΆμ¬λ₯Ό λνλ΄λ©°, μΌλΆ μμ μμλ λ¬Έμ λ₯Ό μΌμΌν¬ μ μμ΅λλ€. NVL ν¨μλ₯Ό μ¬μ©νλ©΄ NULL κ°μ λ€λ₯Έ μ ν¨ν κ°μΌλ‘ λ체νμ¬ λ°μ΄ν°μ 무결μ±μ μ μ§νκ³ μ²λ¦¬ μμ μ μννκ² μνν μ μμ΅λλ€.
3. NVL ν¨μμ μμ
NVL ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ λ€λ₯Έ κ°μΌλ‘ λ체νλ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
μλ₯Ό λ€μ΄, employees
ν
μ΄λΈμλ μ¬μμ μ΄λ¦κ³Ό λμ΄κ° μ μ₯λμ΄ μμ΅λλ€. νμ§λ§ μΌλΆ μ¬μμ λμ΄ μ 보λ λλ½λμ΄ NULL κ°μΌλ‘ νμλ©λλ€. μ΄ κ²½μ°μ NVL ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ λ€λ₯Έ κ°μΌλ‘ λ체ν μ μμ΅λλ€.
λ€μ 쿼리λ employees
ν
μ΄λΈμμ μ¬μμ μ΄λ¦κ³Ό λμ΄λ₯Ό μ‘°ννκ³ , λμ΄κ° NULLμΈ κ²½μ°μλ 'Unknown'μΌλ‘ λ체νμ¬ μΆλ ₯ν©λλ€:
SELECT name, NVL(age, 'Unknown') AS replaced_age
FROM employees;
μμ 쿼리μ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€:
μ΄λ¦ | λ체λ λμ΄ |
---|---|
John | 25 |
Kate | 30 |
Mike | Unknown |
Julia | 40 |
μμ μμ μμ λ³Ό μ μλ―μ΄, employees
ν
μ΄λΈμμ age
μ΄μ κ°μ΄ NULLμΈ κ²½μ° NVL ν¨μλ₯Ό μ¬μ©νμ¬ 'Unknown'μΌλ‘ λ체λμ΄ μΆλ ₯λ©λλ€. μ΄λ κ² ν¨μΌλ‘μ¨ λ°μ΄ν°μ 무결μ±μ μ μ§νκ³ μνλ κ°μ νμν μ μμ΅λλ€.
μ΄ μΈμλ NVL ν¨μλ λ€μν μν©μμ μ¬μ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, NVL ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ λ€λ₯Έ μ΄μ κ°μΌλ‘ λ체νκ±°λ, μμμ μ¬μ©νμ¬ λ³΅μ‘ν μΉνκ°μ μμ±ν μλ μμ΅λλ€. NVL ν¨μλ λ°μ΄ν° μ²λ¦¬λ₯Ό μ μ°νκ² νκ³ , ν¨μ¨μ μΌλ‘ NULL κ°μ λ€λ£° μ μλλ‘ λμμ€λλ€.
4. NVL2 ν¨μλ?
NVL2 ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ€λ₯Έ λ κ° μ€ νλλ‘ λ체νλ κΈ°λ₯μ μ 곡ν©λλ€. μ΄ ν¨μμ μ¬μ©λ²μ λ€μκ³Ό κ°μ΅λλ€:
NVL2(μ€νν μ, λ°νκ°1, λ°νκ°2)
μ€νν μ
μ NULLμΈμ§ νμΈνκ³ μ νλ κ° λλ ννμμ λλ€.λ°νκ°1
μ μ€νν μμ΄ NULLμ΄ μλ κ²½μ° λ°νν κ°μ λλ€.λ°νκ°2
λ μ€νν μμ΄ NULLμΈ κ²½μ° λ°νν κ°μ λλ€.
NVL2 ν¨μλ μ€νν μμ κ°μ΄ NULLμΈμ§ νμΈνκ³ , μ€νν μμ΄ NULLμΈ κ²½μ° λ°νκ°2λ₯Ό λ°νν©λλ€. μ€νν μμ΄ NULLμ΄ μλ κ²½μ°μλ λ°νκ°1μ λ°νν©λλ€.
NVL ν¨μμ λ¬λ¦¬ NVL2 ν¨μλ NULLμΌ λμ NULLμ΄ μλ λμ λ°νκ°μ λ°λ‘ μ§μ ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ€μν μν©μ λ°λΌ λ€λ₯Έ κ°μ λ°ννκ² ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, employees
ν
μ΄λΈμ salary
μ΄μλ μ¬μμ κΈμ¬ μ λ³΄κ° μ μ₯λμ΄ μμ΅λλ€. νμ§λ§ μΌλΆ μ¬μμ κΈμ¬ μ 보λ NULL κ°μΌλ‘ νμλ©λλ€. μ΄ κ²½μ°μ NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬ν μ μμ΅λλ€.
λ€μ 쿼리λ employees
ν
μ΄λΈμμ μ¬μμ μ΄λ¦κ³Ό κΈμ¬λ₯Ό μ‘°ννκ³ , κΈμ¬κ° NULLμΈ κ²½μ°μλ 'No data available'κ³Ό 'Salary available'μ κ°κ° μΆλ ₯ν©λλ€:
SELECT name, NVL2(salary, 'Salary available', 'No data available') AS replaced_salary
FROM employees;
μμ 쿼리μ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€:
μ΄λ¦ | λ체λ κΈμ¬ |
---|---|
John | 1000 |
Kate | 2000 |
Mike | No data available |
Julia | 3000 |
μμ μμ μμ λ³Ό μ μλ―μ΄, employees
ν
μ΄λΈμμ salary
μ΄μ κ°μ΄ NULLμΈ κ²½μ° NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ 'No data available'μ μΆλ ₯νκ³ , NULLμ΄ μλ κ²½μ°μλ 'Salary available'μ μΆλ ₯ν©λλ€.
NVL2 ν¨μλ 쑰건μ λ°λΌ λ€λ₯Έ κ°μ λ°ννκΈ° μν΄ μ¬μ©λλ©°, λ°μ΄ν°μ μ²λ¦¬μ μ μ©ν©λλ€. λ°μ΄ν°λ² μ΄μ€μμ NULL κ°μ λ€λ£° λ μ μ°νκ² λμν μ μλλ‘ λμμ€λλ€.
5. NVL2 ν¨μμ μ¬μ©λ²
NVL2 ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ€λ₯Έ λ κ° μ€ νλλ‘ λ체νλ κΈ°λ₯μ μ 곡ν©λλ€. μ΄ ν¨μμ μ¬μ©λ²μ λν΄ μμΈν μμλ³΄κ² μ΅λλ€.
μ¬μ©λ²
NVL2 ν¨μλ λ€μκ³Ό κ°μ ꡬ문μ κ°μ΅λλ€:
NVL2(μ€νν μ, λ°νκ°1, λ°νκ°2)
μ€νν μ
μ NULLμΈμ§ νμΈνκ³ μ νλ κ° λλ ννμμ λλ€.λ°νκ°1
μ μ€νν μμ΄ NULLμ΄ μλ κ²½μ° λ°νν κ°μ λλ€.λ°νκ°2
λ μ€νν μμ΄ NULLμΈ κ²½μ° λ°νν κ°μ λλ€.
NVL2 ν¨μλ μ€νν μμ κ°μ΄ NULLμΈμ§ νμΈνκ³ , μ€νν μμ΄ NULLμΈ κ²½μ° λ°νκ°2λ₯Ό λ°νν©λλ€. μ€νν μμ΄ NULLμ΄ μλ κ²½μ°μλ λ°νκ°1μ λ°νν©λλ€.
μμ
λ€μμ NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬νλ μμ μ
λλ€. employees
ν
μ΄λΈμλ μ¬μμ μ΄λ¦κ³Ό κΈμ¬ μ λ³΄κ° μ μ₯λμ΄ μμ΅λλ€. μΌλΆ μ¬μμ κΈμ¬ μ 보λ NULL κ°μΌλ‘ νμλ©λλ€. μ΄ κ²½μ°μ NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬ν μ μμ΅λλ€.
λ€μ 쿼리λ employees
ν
μ΄λΈμμ μ¬μμ μ΄λ¦κ³Ό κΈμ¬λ₯Ό μ‘°ννκ³ , κΈμ¬κ° NULLμΈ κ²½μ°μλ 'No data available'κ³Ό 'Salary available'μ κ°κ° μΆλ ₯ν©λλ€:
SELECT name, NVL2(salary, 'Salary available', 'No data available') AS replaced_salary
FROM employees;
μμ 쿼리μ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€:
μ΄λ¦ | λ체λ κΈμ¬ |
---|---|
John | 1000 |
Kate | 2000 |
Mike | No data available |
Julia | 3000 |
μμ μμ μμ λ³Ό μ μλ―μ΄, employees
ν
μ΄λΈμμ salary
μ΄μ κ°μ΄ NULLμΈ κ²½μ° NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ 'No data available'μ μΆλ ₯νκ³ , NULLμ΄ μλ κ²½μ°μλ 'Salary available'μ μΆλ ₯ν©λλ€.
NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬ν¨μΌλ‘μ¨, λ°μ΄ν°μ μ²λ¦¬λ₯Ό μ μ°νκ² ν μ μμ΅λλ€. λ°μ΄ν°λ² μ΄μ€μμ NULL κ°μ λ€λ£° λ NVL2 ν¨μλ₯Ό νμ©νμ¬ μνλ κ°μΌλ‘ λ체ν μ μμ΅λλ€.
6. NVL2 ν¨μμ μμ
NVL2 ν¨μλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ ν¨μλ‘, NULL κ°μ λ€λ₯Έ λ κ° μ€ νλλ‘ λ체νλ κΈ°λ₯μ μ 곡ν©λλ€. μ΄μ NVL2 ν¨μμ μμ λ₯Ό ν΅ν΄ μ€μ μ¬μ© λ°©λ²μ μμΈν μμλ³΄κ² μ΅λλ€.
μμ λ₯Ό μν΄ employees
ν
μ΄λΈμ μ¬μ©νκ² μ΅λλ€. μ΄ ν
μ΄λΈμλ μ¬μμ μ΄λ¦κ³Ό κΈμ¬ μ λ³΄κ° μ μ₯λμ΄ μμ΅λλ€. μΌλΆ μ¬μμ κΈμ¬ μ 보λ NULL κ°μΌλ‘ νμλ©λλ€. μ΄ κ²½μ°μ NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬ν μ μμ΅λλ€.
λ€μμ employees
ν
μ΄λΈμ λ°μ΄ν° μμ μ
λλ€:
μ΄λ¦ | κΈμ¬ |
---|---|
John | 1000 |
Kate | 2000 |
Mike | NULL |
Julia | 3000 |
μ΄μ NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬νλ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. λ€μ 쿼리λ employees
ν
μ΄λΈμμ μ¬μμ μ΄λ¦κ³Ό κΈμ¬λ₯Ό μ‘°ννκ³ , κΈμ¬κ° NULLμΈ κ²½μ°μλ 'No data available'κ³Ό 'Salary available'μ κ°κ° μΆλ ₯ν©λλ€:
SELECT name, NVL2(salary, 'Salary available', 'No data available') AS replaced_salary
FROM employees;
μμ 쿼리λ₯Ό μ€ννλ©΄ λ€μκ³Ό κ°μ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€:
μ΄λ¦ | λ체λ κΈμ¬ |
---|---|
John | 1000 |
Kate | 2000 |
Mike | No data available |
Julia | 3000 |
μμ κ²°κ³Όμμ λ³Ό μ μλ―μ΄, NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ salary
μ΄μ κ°μ΄ NULLμΈ κ²½μ°μλ 'No data available'μ μΆλ ₯νκ³ , NULLμ΄ μλ κ²½μ°μλ 'Salary available'μ μΆλ ₯ν©λλ€.
μ΄λ¬ν μμ λ₯Ό ν΅ν΄ NVL2 ν¨μλ₯Ό μ¬μ©νμ¬ NULL κ°μ μ²λ¦¬ν μ μμΌλ©°, λ°μ΄ν°μ μ²λ¦¬λ₯Ό μ μ°νκ² μ‘°μν μ μλ€λ κ²μ μ μ μμ΅λλ€. λ°μ΄ν°λ² μ΄μ€μμ NULL κ°μ λ€λ£° λ NVL2 ν¨μλ₯Ό νμ©νμ¬ μνλ κ°μΌλ‘ λ체ν μ μμ΅λλ€.
λκΈ