MySQL에서 NULL 처리 방법에서는 IFNULL(), COALESCE(), CASE 문, IF문을 사용해서 NULL을 처리할 수 있습니다.
IFNULL()
IFNULL 함수는 해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수입니다. MySQL의 IFNULL 함수는 Oracle 에서는 NVL(), SQL서버에서는 ISNULL()함수와 같습니다.
기본 구조
SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명;
Ex)
# TLNO 가 NULL이면 "NONE"을 반환하는 코드입니다.
SELECT PT_NAME, IFNULL(TLNO, "NONE") AS TLNO
FROM PATIENT
결과물 | |
COALESCE()
COALESCE 함수는 목록에서 NULL이 아닌 값을 반환하는 함수입니다.
기본 구조
SELECT COALESCE(Column1이름, Column2이름, Column3이름) FROM 테이블명;
Ex)
SELECT
PT_NAME,
COALESCE(TLNO, NULL, "TEST", "NONE") AS TLNO
FROM
PATIENT
결과물 | |
CASE 문 활용
CASE 함수는 CASE조건을 통과하고 첫 번째 조건이 충족될 때 값을 반환합니다. (예: if-then-else문). 따라서 조건이 true이면 읽기를 중지하고 결과를 반환합니다. 조건이 참이 아니면 ELSE절의 값을 반환합니다.
기본 구조
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END AS RESULT
FROM 테이블명;
Ex)
SELECT
PT_NAME,
CASE
WHEN TLNO IS NULL THEN 'NONE'
ELSE TLNO
END AS TLNO
FROM
PATIENT;
결과물 | |
IF 문 활용
IF 함수는 조건식이 참일때와 참이 아닐때를 결과를 반환해주는 함수 입니다.
기본 구조
SELECT IF(column IS NULL, 'No value', column) FROM 테이블명;
Ex)
SELECT
PT_NAME,
IF(TLNO IS NULL, "NONE", TLNO) AS TLNO
FROM
PATIENT
결과물 | |
REPERENCE
반응형
'SQL' 카테고리의 다른 글
[MySQL] 날짜와 시간 관련 함수 (0) | 2024.02.01 |
---|---|
[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 MySQL (2) | 2024.01.31 |
[프로그래머스] 12세 이하인 여자 환자 목록 출력하기 MySQL (0) | 2024.01.29 |
[MySQL] DATE_FORMAT 함수 : 날짜 형식 방법 정리 (2) | 2024.01.28 |
[프로그래머스] 조건에 맞는 도서 리스트 출력하기 MySQL (4) | 2024.01.27 |