NULL 함수

tpids·2024년 6월 4일

DB

목록 보기
6/25

NULL 함수

NULL이란? 값이 아직 정해지지 않은 공란, 빈 칸
NULL값은 산술, 비교 연산이 불가능!

-> 그럼에도 null이라는 개념 사용하는 이유
1) 아직 정해지지 않은 값 표현 가능
2) 테이블의 특성을 지키기 위해

NULL 연산은 IS NULL / IS NOT NULL 로 출력 가능

NULL 함수?

  • 계산에 방해가 되는 NULL값을 대체할 수 있는 함수
  • 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 직원;

<실습 문제>

  1. 직원 테이블에서 나이가 NULL이 아닌 정보만 모두 출력하세요
  2. 직원 중에 입사일시가 정해지지 않은 직원만 출력하세요.
SELECT *
FROM 직원
WHERE 나이 IS NOT NULL;

SELECT *
FROM 직원
WHERE 입사일시 IS NULL;
  1. 직원 테이블에서 정보를 출력하되 나이가
    정해지지 않은 대상은 일단 20 으로 출력되도록 해주세요.
    (NVL 활용)
SELECT 직원ID, 패스워드, NVL(나이,20) AS 나이
FROM 직원;
  1. 직원 테이블에서 성별이 ‘남’ 이면 ‘남성입니다‘ 를 출력,
    그렇지 않으면 ‘여성입니다’ 를 출력해주세요.
(DECODE 활용) 
SELECT 직원ID, 성별, 연봉, DECODE(성별, '남', '남성입니다', '여성입니다') AS 남녀확인
FROM 직원;
profile
개발자 공부중

0개의 댓글