반응형
NVL함수
널처리 함수. data 값이 null 값일때 임의 설정값으로 처리해주기
NVL(대상데이터 , NULL일때 데이터)
값이 null 인 경우, 2번째 지정값을 출력하고 그렇지 않으면 대상데이터를 출력한다.
기본테이블
//DEFAULT
SELECT no, name, salary from table
결과)
no | name | salary |
---|---|---|
1 | 홍길동 | 200 |
2 | 김길동 | null |
NVL 예시
//NVL
SELECT no, name, NVL(salary,0) AS salary from table
결과)
no | name | salary |
---|---|---|
1 | 홍길동 | 200 |
2 | 김길동 | 0 |
-> salary 컬럼의 null 값이 0으로 치환되었음. null이 아닌경우 그대로 출력.
NVL2함수
마찬가지로 널처리 함수이지만 앞의 NVL함수는 null이 아닌 경우에는 본래의 값을 출력하지만,
NVL2를 쓰면 null이 아닌 경우에도 값을 지정한 값으로 사용할 수 있다.
NVL2 ( 대상데이터 , NULL아닐때 데이터 , NULL일때 데이터)
null이 아니면 첫번째 지정값, null이면 지정값2를 출력한다.
NVL2 예시
//NVL2
SELECT no, name, NVL(salary,0) AS salary, NVL2(salary, 'Y', 'N') AS yn from table
NVL(salary,0) : salaly가 null이면 0, 아니면 salaly 그대로 출력
NVL2(salary, 'Y', 'N') : salaly가 null이면 N, 아니면 Y 출력
결과)
no | name | salary | yn |
---|---|---|---|
1 | 홍길동 | 200 | Y |
2 | 김길동 | 0 | N |
위 NVL함수를 사용하지 않아도 DECODE함수 등을 사용해서 같은 결과를 출력 할 수도 있지만 용도에 맞는 명시적인 함수를 사용하는 것이 좋다.
반응형
'Back-end > DataBase' 카테고리의 다른 글
[MYSQL] REGEXP란? 정규표현식 / 무료테스트사이트 (0) | 2022.12.21 |
---|---|
[DBMS] Orange 단축키 정리 (0) | 2022.03.02 |
[SQL] WITH 절이란? (0) | 2022.02.04 |
[DB2] WITH UR 이란? (0) | 2021.11.16 |
[DBMS] MySQL dump / import. 디비 덤프 및 임포트 하기 (0) | 2021.04.16 |