티스토리 뷰
1. NVL,NVL2,NULLIF - 역할
NVL - 컬럼값이 NULL 이면 대체 값을 반환하고 그렇지 않으면 컬럼값을 반환
NVL2(NVL의 확장된 함수) - 컬럼값이 NULL 이면 대체값2를 , 그렇지 않으면 대체값1을 반환
NULLIF - 컬럼1 과 컬럼2가 같을 경우는 NUll ,그렇지 않으면 컬럼1 값을 반환
◈ 구문형식
NVL(컬럼 , 대체값)
NVL2(컬럼 , 대체값1, 대체값2)
NULLIF(컬럼1 ,컬럼2)
2. NVL,NVL2,NULLIF - 기본 테이블
◈ TEST_TABLE_ONE
IDX | NAME | ID | TEL | PHONE |
1 | 테스트1 | test1 |
| 010-0000-0001 |
2 | 테스트2 | test2 |
| 010-0000-0002 |
3 | 테스트3 | test3 | 010-0000-0003 | 010-0000-0003 |
4 | 테스트4 | test4 | 010-0000-0004 |
|
5 | 테스트5 | test5 | 010-0000-0005 |
|
3. NVL,NVL2,NULLIF - SQL 문장
◈ SQL
1 2 3 4 5 6 7 | SELECT IDX ,NAME ,ID ,NVL(TEL,'번호 없음') AS NVL_TEL ,NVL2(TEL,'번호 있음','번호 없음') AS NVL2_TEL ,NULLIF(TEL,PHONE) AS NULLIF_TEL FROM TEST_TABLE_ONE |
◈ 결과 테이블
IDX | NAME | ID | NVL_TEL | NVL2_TEL | NULLIF_TEL |
1 | 테스트1 | test1 | 번호 없음 | 번호 없음 | |
2 | 테스트2 | test2 | 번호 없음 | 번호 없음 | |
3 | 테스트3 | test3 | 010-0000-0003 | 번호 있음 | |
4 | 테스트4 | test4 | 010-0000-0004 | 번호 있음 | 010-0000-0004 |
5 | 테스트5 | test5 | 010-0000-0005 | 번호 있음 | 010-0000-0005 |
◈ 설명
NVL_TEL : TEL 컬럼 중에서 NULL 이면 '번호 없음'을 , 있으면 TEL 컬럼값을 반환합니다
NVL_TEL2 : TEL 컬럼 중에서 NULL이면 세번째 값인 '번호 없음'을,NULL 아니면 두번째 값인 '번호 있음'을 반환합니다
NULLIF : TEL 컬럼과 PHONE 컬럼이 같으면 NULL을 , 그렇지 않으면 TEL 컬럼값을 반환합니다 이 표시 참고
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] TO_DATE - 날짜형 데이터로 변환 (0) | 2016.10.04 |
---|---|
[oracle] TO_CHAR - 문자형 데이터로 변환 (0) | 2016.09.29 |
[oracle]NEXT_DAY , LAST_DAY - 다음날짜와 마지막 날짜 (0) | 2016.09.29 |
[oracle] MONTHS_BETWEEN() - 날짜 사이의 개월 수 구하기 (0) | 2016.09.26 |
[oracle] LENGTH(),LENGTHB() - 문자열 길이 (0) | 2016.09.26 |
- Total
- Today
- Yesterday