NULL이란? 값이 아직 정해지지 않은 공란, 빈 칸
NULL값은 산술, 비교 연산이 불가능!
-> 그럼에도 null이라는 개념 사용하는 이유
1) 아직 정해지지 않은 값 표현 가능
2) 테이블의 특성을 지키기 위해
NVL( data1 , data2 ) : data1에 NULL 값이 들어오면 data2로 교체, NULL이 아니면 그대로 출력
NVL2( data1 , data2 , data3) : data1에 NULL 값이 들어오면 data3를 출력, NULL이 아니면 data2을 출력
DECODE( data1 , data2 , data3 , data4 ) : data1 과 data2 가 동일하면 data3을 출력, 그렇지 않으면 data4를 출력
COALESCE ( data1 , data2 , data3 , …. , dataN ) : 앞에서부터 data를 확인하다가 NULL이 아닌 값이 나오면 출력
SELECT *
FROM 직원
WHERE 나이 IS NULL;
SELECT 직원ID, 나이, NVL(나이, 0)
FROM 직원;
SELECT *
FROM 직원
WHERE 나이 IS NOT NULL;
SELECT *
FROM 직원
WHERE 입사일시 IS NULL;
SELECT 직원ID, 패스워드, NVL(나이,20) AS 나이
FROM 직원;
(DECODE 활용)
SELECT 직원ID, 성별, 연봉, DECODE(성별, '남', '남성입니다', '여성입니다') AS 남녀확인
FROM 직원;