반응형

NULL 값은 더하거나 빼거나 곱하거나 나눌 수 없는 값

=> 필요에 따라 NULL 값을 '0' 또는 '원하는값'으로 변경할 수 있어야 한다. 

 

위의 테이블과 같이 컬럼이 비어있는 것을 "No Name"으로 채워서 처리하고 싶을 때  여러가지 방법이 있다.

 

1. CASE

: True / False를 판단하여 조건식에 맞게 값을 변환할 때 사용

사용 예시)
CASE WITH 조건식1 THEN 식1
            [WHEN 조건식2 THEN 식2 ...
              ELSE  식3]
END

 

//실제 사용예시
SELECT 
    ANIMAL_TYPE,
    CASE
        WHEN NAME IS NULL THEN "No name"
        else NAME

    END AS NAME,
    SEX_UPON_INTAKE
FROM ANIMAL_IN

 

2. COALESCE

: 입력받은 여러 개의 인자 중 NULL이 아닌 값을 반환

사용 예시)
SELECT COALESCE(ID, VALUE)
FROM 테이블

- 주의 사항 

   1. ELSE 문 꼭 사용 -> 기재하지 않으면 NULL 값

   2. NULL 값 체크 시 " = " 을 사용하지 않는다. 

 

SELECT
    ANIMAL_TYPE,
    COALESCE(NAME, "No NAME") AS NAME,
    SEX_UPON_INTAKE

FROM ANIMAL_INS

 

3. IFNULL()

: 해당 필드의 값이 NULL 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수 

  하나의 필드 값 뿐 아니라, 연속적으로도 활용할 수 있다.

 

사용 예시)
SELECT IFNULL(필드명, "대체할 값") FROM 테이블명; 
SELECT
    ANIMAL_TYPE,
    IFNULL(NAME, "No name") as NAME,
    SEX_UPON_INTAKE
from ANIMAL_INS
반응형

'Database Study > SQL' 카테고리의 다른 글

[SQL]LOCK이란?  (0) 2020.06.02
[SQL]Join VS Union  (0) 2020.05.26
[MySQL]프로그래머스_입양 시각 구하기(2) (UNION/변수선언)  (2) 2020.03.10
[Oracle DB]Join 종류  (0) 2020.01.06
[Oracle DB] 커서 (CURSOR)  (0) 2020.01.06

+ Recent posts