NVL
Syntax
NVL(expr1, expr2)
개요
NVL 함수는 두 인자 중 첫 번째 인자가 NULL이 아니면 그 값을 반환하고, 만약 NULL이면 두 번째 인자의 값을 반환한다.
동일한 타입의 인자에 대해서만 호출되지만, 서로 다른 타입일 경우 암묵적 형 변환을 수행한다.
return 타입은 첫번째 인자의 타입을 따른다.
파라미터
파라미터
설명
expr1
평가할 첫 번째 값이다. 이 값이 NULL이 아니면 그대로 반환된다.
expr2
첫 번째 인자가 NULL일 경우 반환될 값이다; 두 인자의 타입이 다를 경우, 적절한 형 변환(예: 텍스트에서 숫자 또는 날짜로의 변환)이 시도될 수 있다.
예제
# 테스트 데이터
create table employees (first_name varchar, last_name varchar, salary integer, hire_date timestamptz);
INSERT INTO employees (first_name, last_name, salary, hire_date) VALUES
('John', 'Doe', NULL, '2020-03-15 09:00:00'),
(NULL, 'Smith', 62000, '2019-07-22 10:30:00'),
('Michael', 'Johnson', 72000, '2018-11-10 08:45:00'),
('Emily', 'Davis', 48000, '2021-05-01 12:00:00'),
('David', 'Wilson', 53000, '2017-09-17 14:20:00'),
(NULL, 'Brown', NULL, '2016-12-05 09:15:00'),
('James', 'Taylor', NULL, '2015-06-30 16:45:00'),
('Jessica', 'Martinez', 68000, '2022-01-25 11:10:00'),
(NULL, 'Anderson', 58000, '2020-10-05 13:35:00'),
('Laura', 'Thomas', 49500, '2023-08-12 08:00:00');
# 테스트 1
# salary 값이 NULL이면 0 반환; first_name 값이 NULL이면 last_name 반환;
select oracle.NVL(salary,0), oracle.NVL(first_name, last_name) from employees ;
nvl | nvl
-------+---------
55000 | John
62000 | Jane
72000 | Michael
48000 | Emily
53000 | David
60000 | Sarah
75000 | James
68000 | Jessica
58000 | Daniel
49500 | Laura
(10 rows)
Last updated