(1) IFNULL(컬럼명, 치환값)
=> 컬럼명이 null인 경우 치환값으로 치환하여 반환
ex) CHECK 컬럼이 null인 경우 N으로 치환하여 출력
SELECT IFNULL(CHECK, 'N')
FROM TABLE;
(2) IF() + IS NULL
=> IF(컬럼명 IS NULL, 'TRUE 값', 'FALSE 값')
SELECT IF(CHECK IS NULL, 'N', 'Y')
FROM TABLE;
(3) NULLIF(값1, 값2)
=> (값1 == 값2)인 경우 NULL을 반환, FALSE인 경우 값1을 반환
SELECT NULLIF(1,1)
-- null
SELECT NULLIF(1,2)
-- 1
(4) CASE
=> 해당 컬럼 값을 조건식을 통해 True, False를 판단하여 조건에 맞게 컬럼 값을 변환
-- CASE, WHEN ~ THEN, ELSE, END
SELECT
CASE
WHEN NAME IS NULL THEN "NO NAME" -- NAME 컬럼이 IS NULL 조건식에 True인 경우 "NO NAME" 출력
ELSE NAME -- 나머지 False
END AS NAME
FROM ANIMALS
(5) COALESCE
=> 지정한 표현식들 중에 NULL이 아닌 첫 번째 값을 반환, 모든 DBMS에서 사용 가능
- 표현식은 여러 항목 지정 가능
- 처음으로 만나는 NULL이 아닌 값을 출력
- 표현식이 모두 NULL일 경우 결과도 NULL을 반환
- 배타적 OR 관계 열에서 활용도가 높음
-- NULL 처리
SELECT COALSECE(컬럼1, 컬럼1이 NULL인 경우 대체 값)
FROM 테이블
-- 배타적 OR 관계 열
-- COL 1~4중 NULL이 아닌 첫번째 COL 출력
SELECT COALSECE(COL1, COL2, COL3, COL3)
FROM 테이블
-- NAME 컬럼이 NULL인 경우 다음 표현식으로, 다음 표현식 "NO NAME"은 NULL이 아니므로 출력
SELECT COALSECE(NAME, "NO NAME")
FROM ANIMALS
Reference
- https://dkswnkk.tistory.com/534
- https://velog.io/@gillog/DB-MySQL-NULL-%EC%B2%98%EB%A6%ACIFNULL-CASE-COALESCE
* 수정일 2023-05-09
'Web > SQL' 카테고리의 다른 글
[MySQL] 부분 문자열 가져오기 - LEFT, MID, RIGHT 함수 (0) | 2023.05.09 |
---|---|
[MySQL] LIKE, CONCAT, ROUND 함수 (0) | 2023.04.30 |
[MySQL] SQLyog 2058 Error (0) | 2022.08.17 |
[Mysql] 포트번호 변경 (0) | 2022.07.06 |
[Ubuntu] Mysql 명령어 (0) | 2022.07.06 |