반응형
NVL 함수
NULL을 지정한 값으로 변환하는 함수
SELECT (expr1,expr2)
FROM 테이블
구문
1 2
NVL(expr1,expr2)
expr1 - NULL을 포함하는 컬럼(NULL이 들어가 있을 만한 컬럼) ,
expr2 - NULL인 경우 변환할 값(NULL 대신 넣을 값)
이 쿼리는 연봉을 구하고 그 연봉에 보너스를 더하는데 BONUS_PCT 값에 NULL이 있을 경우 결과 값이 NULL이 나온다.
(NULL 값이 있을 때 연산을 하면 NULL 이 나온다.)
이걸 NVL 함수를 사용해서 NULL값을 0으로 만든후 연산을 하여 아래와 같이 계산이 가능하게 끔 만든다.
NVL2 함수
NULL 값이 아닐 경우 특정 값으로 출력하는 함수
SELECT (expr1,expr2,expr3)
FROM 테이블
구문
1 2 3
NVL2(expr1,expr2,expr3)
1.expr1 - 컬럼(NULL이 들어가 있는 컬럼 ,
2.expr2 - NULL이 아닌 경우 출력할 값
3.expr3 - NULL인 경우 출력할 값
위와 같은 경우 쿼리를 풀어서 해석하면
MGR_ID(expr1) 가 NULL이 아닌 경우 '직원'(expr2)으로 출력하고 만약 NULL 이라면 '관리자'(expr3)으로 출력한다.
IF ELSE 문을 배웠다면 그거랑 같다고 생각하면 쉬울 것 같다.
반응형
'Base > Database' 카테고리의 다른 글
[Database] ORDER BY 절,GROUP BY 절 함수 사용법 (Oracle SQL) (0) | 2020.07.16 |
---|---|
[Database] DECODE & CASE 함수 사용법 (Oracle SQL) (0) | 2020.07.15 |
[Database] 데이터 타입 변환 TO_DATE,TO_NUMBER,TO_CHAR 사용법 (0) | 2020.07.15 |
[Database] 날짜함수 SYSDATE,ADD_MONTHS,MONTHS_BETWEEN 함수 사용법 (0) | 2020.07.14 |
[Database] Round 함수 , Trunc 함수 사용법 (0) | 2020.07.14 |