포스팅 목차
o NVL2
문 법
nvl2::=
목 적
NVL2함수를 사용하면, 지정한 표현이 NULL인지 여부에 근거하여 쿼리의 반환될 값을 분기하여 처리할 수 있다. 만약 expr1이 NULL이 아니라면 expr2를 반환하고, 만약 expr1인 NULL이라면 expr3을 반환한다.
인수 expr1은 임의의 데이터형을 가질 수 있다. 인수 expr2와 expr3은 LONG 이외의 임의의 데이터 형을 가질 수 있다.
만약 expr2와 expr3의 데이터형이 다르다면,
- 만약 expr2가 문자 데이터형이라면, 오라클 데이터 베이스는 expr3이 NULL 상수가 아닌 한, 그것들을 비교하기 전에 expr3을 expr2의 데이터형으로 변환한다. expr3이 NULL상수인 경우에는, 데이터형 변환은 필요하지 않는다. 오라클은 expr2의 문자 세트에서 VARCHAR2를 반환한다.
- 만약 expr2가 수치인 경우에는, 오라클은 더 높은 수치 순위를 판단하여, 다른 인수의 데이터형을 암묵적으로 변환하여, 그 데이터형으로 반환한다.
참 고
관련 함수
함수명 | 함수내용 |
COALESCE | 나열된 인수의 값을 순차적으로 체크하여 NULL이 아닌 첫 번째 인수를 반환한다. |
LNNVL | 조건문의 한쪽 또는 양쪽의 피연산자가 NULL이 존재하는 관측치를 포함하여 조건문을 평가하기 위한 방법을 제공한다. |
NANVL |
만약 n2가 NaN이 아니라면, 오라클은 n2를 반환한다. 만약 입력 값 n2가 Nan(숫치가 아닌)인 경우에 대체 값 n1을 반환하도록 오라클에 지시한다. |
NULLIF |
expr1과 expr2를 비교하는 비교 함수이다. 만약 expr1과 expr2가 같으면 NULL값을 반환하고, expr1과 expr2가 서로 동일하지 않으면 expr1을 반환한다. |
NVL | 쿼리의 결과에서 NULL(공백으로 반환) 값을 치환하는 함수이다. 만약 expr1이 NULL이면 expr2를 반환하고, 만약 expr1이 NULL이 아니면 expr1을 반환한다. |
NVL2 | NVL2함수를 사용하면, 지정한 표현이 NULL인지 여부에 근거하여 쿼리의 반환될 값을 분기하여 처리할 수 있다. |
예 제
다음 예제는 employee테이블의 commission_pct 열이 NULL인지 여부에 의해서, 종업원의 수입이 급여와 수수료가 더해졌는지, 단지 급여로 구성되어 있는지 나타낸다.
Oracle Program |
SELECT last_name, salary,
NVL2(commission_pct, salary + (salary * commission_pct), salary) income
FROM employees
WHERE last_name like 'B%'
ORDER
BY last_name;
Results |
LAST_NAME SALARY INCOME
------------------------- ---------- ----------
Baer 10000 10000
Baida 2900 2900
Banda 6200 6882
Bates 7300 8468
Bell 4000 4000
Bernstein 9500 11970
Bissot 3300 3300
Bloom 10000 12100
Bull 4100 4100
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크 |
반응형
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클(Oracle) SQL 함수】 PATH 함수 (0) | 2021.10.19 |
---|---|
[오라클 SQL 함수] ORA_HASH 함수 (0) | 2021.10.19 |
【오라클(Oracle) SQL 함수】 NVL 함수 (0) | 2021.10.19 |
【오라클(Oracle) SQL 함수】 ASIN 함수 (0) | 2021.10.18 |
【오라클(Oracle) SQL 함수】 NUMTOYMINTERVAL 함수 (0) | 2019.01.03 |
댓글