CS/데이터베이스

[MySQL] NULL 값 처리

딜레이레이 2024. 3. 23. 13:10

IFNULL

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

SELECT IFNULL(Column명, "NULL일 경우 대체값") FROM 테이블명;

 

- 예시

=> NAME 열의 값이 NULL일 경우 "No name"으로 출력, 아니면 원래의 값 출력

SELECT ANIMAL_TYPE, IFNULL(NAME, "No name"), SEX_UPON_INTAKE 
FROM ANIMAL_INS;

IF(), IS NULL

SELECT ANIMAL_TYPE, IF(ISNULL(NAME), "No name", NAME), SEX_UPON_INTAKE 
FROM ANIMAL_INS;

- IF(조건, 참일 때의 값, 거짓일 때의 값)

- ISNULL(파라미터) : 파라미터로 받은 값이 NULL인지 판별

 

CASE

CASE
  WHEN 조건1 THEN 조건1 충족할 때 반환되는 값
  WHEN 조건2 THEN 조건2 충족할 때 반환되는 값
  WHEN 조건3 THEN 조건3 충족할 때 반환되는 값
  ELSE 모든 조건 해당되지 않을 때 반환되는 값
END

 

1. WHEN-THEN은 같이 사용

2. WHEN-THEN 개수 제한 없음

3. ELSE가 없는데 WHEN-THEN 조건 충족하지 않으면 NULL 값 반환

4. 끝에 END 필수

 

- 예시

SELECT ANIMAL_TYPE,
(CASE
    WHEN ISNULL(NAME) THEN "No name"
    ELSE NAME
END), SEX_UPON_INTAKE 
FROM ANIMAL_INS;

 

 

[참고]

https://www.w3schools.com/mysql/mysql_ref_functions.asp

https://wnwa.tistory.com/21