본문 바로가기
SQL

[MySQL][프로그래머스] NULL값 처리 (경기도에 위치한 식품창고 목록 출력하기)

by saemsaem 2024. 5. 7.


1. IFNULL 

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

SELECT WAREHOUSE_ID,WAREHOUSE_NAME,ADDRESS,IFNULL(FREEZER_YN, "N") AS FREEZER_YN
FROM FOOD_WAREHOUSE
where ADDRESS like "경기도%"
order by WAREHOUSE_ID asc;
#IFNULL 기본구조
SELECT IFNULL (column이름, "null일 경우 대채값")
FROM 테이블명

 

- IF를 사용할 수도 있다

SELECT IF(IS NULL(FREEZER_YN), "N", FREEZER_YN)
# SELECT IF(FREEZER_YN IS NULL, "N", FREEZER_YN)
FROM FOOD_WAREHOUSE
#IF 기본구조
IF (조건, TRUE, FALSE)

 

2. CASE

조건식을 통해 true, false를 판단하여 조건에 맞게 column 값을 변환할 때 사용하는 함수

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, 
	CASE
    	WHEN FREEZER_YN IS NULL THEN "N" 
        ELSE FREEZER_YN 
    END AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE "경기도%"
ORDER BY WAREHOUSE_ID ASC;
#case 기본구조
CASE
	WHEN 조건식1 THEN 식1
    WHEN 조건식2 THEN 식2
    ELSE 조건에 맞는 경우가 없을 때
END

 

3. COALESCE

매개변수로 주어진 column들 중 null이 아닌 첫번째 값을 반환한다.

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, COALESCE(FREEZER_YN, "N")
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE "경기도%"
ORDER BY WAREHOUSE_ID ASC;
#COALESCE 기본구조
COALESCE (value1, value2, value3 ...)
#value1부터 순서대로 검사하여 null이 아닌 값을 찾아 반환한다.