MySQL NULL 처리

dev.홍성원·2023년 6월 30일

oracle에서 NVL로 null처리를 했는데, MySQL에서 NVL함수가 없어서 NULL을 처리하는 몇 가지 방법을 정리합니다.

  1. IF NULL

    SELECT IFNULL(COLUMN, "DEFAULT_VALUE") FROM TABLE

    IFNULL의 첫 번째 인자의 컬럼이 NULL이라면 두 번째 인자의 값을 조회한다.

  2. COALESCE

    COALESCE는 IFNULL처럼 사용할 수 있지만 추가적인 기능을 지원한다.
    SELECT COALESCE(COLUMN1, "DEFAULT_VALUE") FROM TABLE
    위의 코드는 IFNULL을 사용할 때와 같게 동작한다.

    SELECT COALESCE(COLUMN1, COLUMN2, COLUMN3, ...) FROM TABLE
    이렇게 작성 하면, 전달인자의 순서대로 순회하며 NULL이 아닌 값이 나올때 까지 조회하다 NULL이 아닌 인자값을 반환한다.

  3. CASE
    해당 컬럼에 조건식을 사용해 True, False를 판별 후 해당 조건의 로직을 수행한다.

    SELECT
       CASE 
            WHEN COLUMN IS NULL THEN "default_value"
            ELSE COLUMN // 조건식에 해당하는 경우가 없을 시 수행
        END AS COLUMN
       FROM TABLE

    반드시 ELSE문을 작성.

profile
백엔드 신입 개발자

0개의 댓글