oracle에서 NVL로 null처리를 했는데, MySQL에서 NVL함수가 없어서 NULL을 처리하는 몇 가지 방법을 정리합니다.
IF NULL
SELECT IFNULL(COLUMN, "DEFAULT_VALUE") FROM TABLE
IFNULL의 첫 번째 인자의 컬럼이 NULL이라면 두 번째 인자의 값을 조회한다.
COALESCE
COALESCE는 IFNULL처럼 사용할 수 있지만 추가적인 기능을 지원한다.
SELECT COALESCE(COLUMN1, "DEFAULT_VALUE") FROM TABLE
위의 코드는 IFNULL을 사용할 때와 같게 동작한다.
SELECT COALESCE(COLUMN1, COLUMN2, COLUMN3, ...) FROM TABLE
이렇게 작성 하면, 전달인자의 순서대로 순회하며 NULL이 아닌 값이 나올때 까지 조회하다 NULL이 아닌 인자값을 반환한다.
CASE
해당 컬럼에 조건식을 사용해 True, False를 판별 후 해당 조건의 로직을 수행한다.
SELECT
CASE
WHEN COLUMN IS NULL THEN "default_value"
ELSE COLUMN // 조건식에 해당하는 경우가 없을 시 수행
END AS COLUMN
FROM TABLE
반드시 ELSE문을 작성.