안녕하세요. 프로그래머스 경기도에 위치한 식품창고 목록 출력하기 문제를 풀어보려고 합니다.
Problem
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해 주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/131114
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처리 방법은 여러 가지가 있습니다. 궁금하신 분은 아래의 링크를 참고해 주세요.
다른 방법인 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
이렇게 다양한 방법으로 문제를 풀이할 수 있습니다. 더 좋은 방법이나 추천해주고 싶은 풀이가 있으면 언제든지 댓글 남겨주시면 감사하겠습니다:)
'SQL' 카테고리의 다른 글
[프로그래머스] 이름이 없는 동물의 아이디 MySQL (0) | 2024.02.11 |
---|---|
[프로그래머스] 과일로 만든 아이스크림 고르기 MySQL (0) | 2024.02.10 |
[프로그래머스] 강원도에 위치한 생산공장 목록 출력하기 MySQL (0) | 2024.02.08 |
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 MySQL (2) | 2024.02.07 |
[프로그래머스] 흉부외과 또는 일반외과 의사 목록 출력하기 MySQL (0) | 2024.02.05 |