https://www.youtube.com/user/newlec1의 내용을 정리해서 포스팅합니다.
데이터베이스를 이용할 때 NULL로 인해 애를 먹는 상황이 가끔 발생한다. 이를 해결하기 위해 NULL 관련 함수를 알아보고 DECODE 함수를 알아보자.
[ NVL(입력값, 대체값) ]
- 반환 값이 NULL일 경우에 대체 값을 제공하는 함수이다.
* SELECT NVL(AGE, 0) FROM MEMBERS;
- 나이를 조회하는데 해당 컬럼의 값이 NULL이라면 0으로 출력한다.
[ NVL2(입력값, NOTNULL 대체값, NULL 대체값) 함수 ]
- NVL에서 조건을 하나 더 확장한 함수이다.
- NULL일 경우 대체값도 넣을 수 있고 NULL이 아닐 경우 대체 값도 넣을 수 있다.
* SELECT NVL2(AGE, 100/AGE, 0) FROM MEMBERS;
[ NULLIF(값1, 값2) ]
- NVL, NVL2가 NULL값일 경우에 NULL을 처리하는 함수라면 NULLIF는 NULL값을 만들기 위한 함수이다.
- 두 값이 같은 경우 NULL, 그렇지 않은 경우 첫 번째 값을 반환하는 함수이다.
* SELECT NULLIF(AGE, 19) FROM MEMBERS;
- 19살이 해당하는 행은 NULL을 반환한다.
[ DECODE(기준값, 비교값, 출력값, 비교값, 출력값) ]
- 조건에 따른 값 선택하기
* SELECT DECODE(SUBSTR(PHONE, 1, 3), '011', 'SK', '016', 'KT', '기타') FROM MEMBERS;
* SELECT DECODE(SUBSTR(PHONE, 1, 3),
'011', 'SK',
'016', 'KT',
'기타') FROM MEMBERS;
- 두 구문 모두 동일하다. 알아보기 힘들어서 줄 맞춤을 해줬을 뿐이다.