본문 바로가기

algorithm

[programmers] MySQL - Lv.1 경기도에 위치한 식품창고 목록 출력하기 (is null)

문제

 

 

 

 

 

풀이

 

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;

 

CASE문을 활용해서 위처럼 코드를 작성할 수 있고,

[MySQL] case문으로 데이터 변환하기

 

[MySQL] case문으로 데이터 변환하기

임의의 조건에 따라 독자적으로 변환 처리를 지정해 데이터를 변환하고 싶은 경우 case문 이용 [SYNTAX] CASE  WHEN 조건식 1 THEN 식 1  WHEN 조건식 2 THEN 식 2  ELSE 식 3 END when절에는 참과 거짓을 반환..

hyunjin1292.tistory.com

 

 

더 간단하게 작성하려면

 

SELECT warehouse_id, warehouse_name, address, ifnull(freezer_yn, 'N')
from food_warehouse
where address like '경기도%'
order by warehouse_id;

 

IFNULL을 활용해서 위처럼 간단하게 작성하거나

 

SELECT warehouse_id, warehouse_name, address, coalesce(freezer_yn, 'N')
from food_warehouse
where address like '경기도%'
order by warehouse_id;

 

COALESCE함수를 이용하는 방법도 있다.

 

 

 

 

노트

 

MySQL에서 NULL 처리하는 방법에는 IFNULL을 활용하는 방법과,

 

[SYNTAX]
SELECT a, IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명;

 

 

COALESCE 함수를 사용할 수도 있다.

 

[SYNTAX]
SELECT a, COALESCE(Column명, "Null일 경우 대체 값") FROM 테이블명;