1) NVL
NVL은 컬럼값이 NULL(값이 없음)일때 다른 값을 출력하는 함수다.
- 기본형태 : NVL(컬럼명, '출력을 원하는값')
- 예시
이름 | 등록여부 |
서현진 | Y |
문정혁 | |
유승우 | N |
위와 같은 TABLE이 있다고 하자.
이 경우 문정혁의 등록여부 값이 NULL이다.
등록여부의 값이 없을 때(등록여부가 NULL일 때) 등록을 안한 것이라고 한다면
아래와 같은 SELECT문으로 좀 더 정확하게 데이터를 출력할 수 있다.
SELECT 이름, NVL(등록여부,'N')
FROM TABLE;
그럼 아래와 같이 문정혁의 등록여부 값이 없었는데 'N'으로 표현이 가능하다.
이름 | 등록여부 |
서현진 | Y |
문정혁 | N |
유승우 | N |
2) DECODE
DECODE는 조건을 만족하면 x, 만족하지 않으면 y를 출력할 수 있는 함수다.
- 기본형태 : DECODE(컬럼명, 조건, '조건이 충족할 경우 출력할 값', '충족하지 않을 때 출력할 값')
DECODE(컬럼명, 조건1, '조건1이 충족할 경우 출력할 값', 조건2, '조건2가 충족할 경우 출력할 값'
,'충족하지 않을 때 출력할 값')
DECODE 괄호안에 조건과 그 조건이 충족할 경우 출력할 값은 1개, 2개만 되는 게 아니라 계속 추가가능!
- 예시
이름 | 등록여부 |
서현진 | Y |
문정혁 | |
유승우 | N |
등록을 했을 경우(등록여부가 Y인 경우) 100을 내야하고 아닐 경우 20을 내야한다고 한다면
아래와 같은 SELECT문으로 등록비를 출력할 수 있다.
SELECT 이름, NVL(등록여부,'N'), DECODE(등록여부, 'Y', 100, 20)
FROM TABLE;
그럼 아래와 같이 등록비를 출력할 수 있다.
이름 | 등록여부 | 등록비 |
서현진 | Y | 100 |
문정혁 | N | 20 |
유승우 | N | 20 |
'프로그래밍' 카테고리의 다른 글
오라클 SQL NULL 사용법 - IS NULL, IS NOT NULL (0) | 2022.03.07 |
---|---|
오라클 SQL SELECT문, WHERE절 사용방법과 예시 (0) | 2022.03.06 |
오라클 SQL Merge문(머지문) 사용 방법과 예시 (0) | 2022.03.03 |
ORA-00060 deadlock 에러 (데드락 에러) 원인과 해결🤔 (0) | 2022.02.22 |
INTERNAL ERROR: Failed assertion [PGE Code=90105] 에러 해결 방법🤔 (0) | 2022.02.22 |