반응형
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 |