반응형
⚡️null 값이 포함 된 칼럼 제외
📌 ~WHERE [칼럼] IS NOT NULL
select ename, sal, comm, sal+comm
from emp;
select ename, sal, comm, sal+comm
from emp
where comm is NOT NULL;
⚡️NULL 값 치환
📌 NVL(컬럼, 치환할 값)
널 값을 만나면 다른 값으로 치환해서 출력하는 함수이다.
select name, pay, nvl(bonus, 0), pay*12+nvl(bonus, 0) 연봉
from professor
where deptno = 101;
만약 nvl함수가 없다면
select name, pay, bonus, pay*12+bonus 연봉
from professor
where deptno = 101;
NULL 값과 계산하는 수식의 결과도 NULL이 나오는 것을 볼 수 있다.
📌 NVL2(컬럼, NOT NULL일 경우, NULL일 경우)
NVL2 함수는 컬럼의 값들 중 널이 아닌 값과 널인 값의 상황을 모두 고려해서 사용이 가능하다.
바로 위의 코드에서는 NVL 함수를 사용해 널 값을 제거하지만 연봉이 제대로 계산되지 않는다.
select name, pay, bonus, nvl2(bonus, pay*12+bonus, pay*12) 연봉
from professor
where deptno = 101;
하지만 NVL2 함수를 사용하면 보너스가 널 값이여도 제대로 연봉 계산이 되는 것을 볼 수 있다.
널의 대체값으로 문자열을 사용할 수도 있다.
select name, pay, bonus, nvl2(bonus, to_char(pay*12+bonus), '보너스 없음') 연봉
from professor
where deptno = 101;
not null 부분에 to_char() 함수로 형 변환을 해주었다.
nvl2 함수의 두가지 치환 값은 같은 형태로 입력되어야 오류가 나지 않게 된다.
반응형
'Database > SQL' 카테고리의 다른 글
[Oracle/SQL] 시퀸스(Sequence)와 초기화하는 방법 (0) | 2022.02.21 |
---|---|
[Oracle/SQL] DECODE, CASE 조건문 (0) | 2021.12.09 |
[Oracle/SQL] SUBSTR, INSTR 문자열 함수 (0) | 2021.12.08 |
[Oracle, SQL] SELECT 문자 검색 (0) | 2021.12.02 |
[Oracle, SQL] SELECT 기본 문법, 컬럼 이름 변경, 컬럼 리터럴 추가 (0) | 2021.12.01 |
댓글