SQL/프로그래머스 SQL

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

진리뷰 2023. 12. 22. 09:00
반응형

 
 

MySQL-NULL값-처리-IFNULL-사용법-프로그래머스-경기도에-위치한-식품창고-목록-출력하기-썸네일
MySQL NULL값 처리, IFNULL 사용법 (프로그래머스 문제로 확인하기)

 
 
 
 
이 글은 IFNULL 사용법과 이를 활용한 프로그래머스 SQL 고득점 Kit 문제와 답을 정리한 글입니다.

*MySQL 버전입니다.

 
 
 

MySQL NULL값 처리, IFNULL 사용법

 
MySQL에서 NULL값을 처리하는 방법 중 가장 편리한 IFNULL 사용법은 다음과 같다.

select IFNULL(컬럼명,"NULL일 때 출력 값")
from 테이블명;

 

  • select IFNULL(컬럼명, "NULL일 때 출력 값")

해당 컬럼에 NULL값이 있다면, 어떤 값으로 출력할 것인지 입력한다.
문자는 쌍따옴표로 감싸준다. ex. "문자"
숫자는 그냥 입력하면 된다. ex. 10
 
 
 

MySQL IFNULL 사용법 (프로그래머스 경기도에 위치한 식품창고 목록 출력하기)

 
간단한 IFNULL 사용법을 프로그래머스의 경기도  위치한 식품창고 목록 출력하기 문제로 알아보자.
 
💡 창고 id, 창고명, 주소, 냉동시설 여부 출력

  • 경기도에 위치한 창고 한정
  • 냉동시설 여부 컬럼의 NULL은 'N'으로 출력
  • 창고id 기준 오름차순 정렬

 

MySQl-프로그래머스-경기도위치한식품창고목록출력하기-문제
경기도에 위치한 식품창고 목록 출력하기 문제

 
 
 
문제의 원 데이터를 확인해 보니, 냉동시설 여부에 빨간 동그라미 부분처럼 NULL값이 존재한다.
해당 부분을 처리하는 것이 문제이다.

MySQl-프로그래머스-경기도위치한식품창고목록출력하기-문제-예시
경기도에 위치한 식품창고 목록 출력하기 NULL

 
 
 

프로그래머스 경기도에 위치한 식품창고 목록 출력하기 답

 
💡 문제 포인트: IFNULL로 NULL값 처리 간단하게 처리
 
이 문제는 "null이면 n을 출력해" 처럼 if else 혹은 case when 등 조건문으로도 풀 수 있다.
하지만 아래처럼 IFNULL을 사용하면, 짧은 쿼리로 처리 가능하다.
냉동시설 여부 컬럼인 FREEZER_YN에서 NULL값이 존재한다면, N으로 출력된다.
다시 말해, NULL값은 모두 N으로 보인다. 

select WAREHOUSE_ID
, WAREHOUSE_NAME
, ADDRESS
, ifnull(FREEZER_YN, 'N') as FREEZER_YN
from FOOD_WAREHOUSE
where ADDRESS like "%경기도%"
order by 1;

 
이때 경기도에 위치한 공장만 출력하는 조건이 있으므로, where 절에 like 사용했다.

*MySQL 특정 문자포함 검색 관련 글 추천(like, regexp 등)
MySQL 프로그래머스 SQL 고득점 Kit 오프라인/온라인 판매 데이터 통합 문제 답
MySQL 프로그래머스 서울에 위치한 식당 목록 출력하기 문제 답
MySQL 프로그래머스 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 문제 답
MySQL LIKE 여러 개 검색(LIKE IN), REGEXP 사용 방법

 

반응형
top