본문 바로가기
SQL

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

by Echung 2024. 2. 9.
thumbnail

 

안녕하세요. 프로그래머스 경기도에 위치한 식품창고 목록 출력하기 문제를 풀어보려고 합니다.

Problem


FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해 주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/131114

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Solution


먼저 문제에서 MySQL에서 무엇을 사용할지 알겠습니다. 제가 문제에서 bold처리해 놓았습니다 참고 바랍니다. 이제 문제를 하나씩 풀어보겠습니다.

FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름주소냉동시설 여부를 조회하는 SQL문을 작성해주세요작성해 주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해 주세요.

문제 풀이

1. 주소가 '경기도'에 위치한 문제를 풀기 위해서 WHERE을 사용해 줍니다.

2. 냉동시설 여부가 NULL인 경우, 'N'을 출력하기 위해서 IF문을 사용해 줍니다.

3. 창고 ID를 기준으로 오름차순 정렬을 하기 위해서 ORDER BY를 사용해 줍니다.

이렇게 우리는 3가지의 기능을 사용해서 문제를 해결할 수 있습니다. 아래의 코드를 확인해 주세요.

IF문 사용 코드

SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
IF(FREEZER_YN IS NULL, 'N', FREEZER_YN)
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID

위의 코드는 IF문을 사용한 코드이다. 하지만 IF문 말고 NULL처리 방법은 여러 가지가 있습니다. 궁금하신 분은 아래의 링크를 참고해 주세요.

 

[MySQL] MySQL NULL 처리하기 (IFNULL, COALESCE, CASE, IF...)

MySQL에서 NULL 처리 방법에서는 IFNULL(), COALESCE(), CASE 문, IF문을 사용해서 NULL을 처리할 수 있습니다. IFNULL() IFNULL 함수는 해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함

echung93.tistory.com

다른 방법인 IFNULL을 사용해서 문제를 풀어보겠습니다.

IFNULL 사용 코드

SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
IFNULL(FREEZER_YN, 'N') AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID

이렇게 다양한 방법으로 문제를 풀이할 수 있습니다. 더 좋은 방법이나 추천해주고 싶은 풀이가 있으면 언제든지 댓글 남겨주시면 감사하겠습니다:)

반응형