[ Programmers ] Lv1. 경기도에 위치한 식품창고 목록 출력하기 (MySQL)

ma.caron_g·2022년 11월 7일
0

MySQL Algorithm

목록 보기
12/20
post-thumbnail

1. Problem 📃

[ 강원도에 위치한 생산공장 목록 출력하기 ]

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


[ 문제 설명 ]

다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. FOOD_WAREHOUSE 테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.

Column nameTypeNullable
WAREHOUSE_IDVARCHAR(10)FALSE
WAREHOUSE_NAMEVARCHAR(20)FALSE
ADDRESSVARCHAR(100)TRUE
TLNOVARCHAR(20)TRUE
FREEZER_YNVARCHAR(1)TRUE

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


2. Example 📚

[ 입출력 예시 ]

FOOD_FACTORY 테이블이 다음과 같을 때

WAREHOUSE_IDWAREHOUSE_NAMEADDRESSTLNOFREEZER_YN
WH0001창고_경기1경기도 안산시 상록구 용담로 141031-152-1332Y
WH0002창고_충북1충청북도 진천군 진천읍 씨제이로 110043-623-9900Y
WH0003창고_경기2경기도 이천시 마장면 덕평로 811031-221-7241NULL
WH0004창고_경기3경기도 김포시 대곶면 율생중앙로205번길031-671-1900N
WH0005창고_충남1충청남도 천안시 동남구 광덕면 신덕리1길 9041-876-5421Y

SQL을 실행하면 다음과 같이 출력되어야 합니다.

WAREHOUSE_IDWAREHOUSE_NAMEADDRESSFREEZER_YN
WH0001창고_경기1경기도 안산시 상록구 용담로 141Y
WH0003창고_경기2경기도 이천시 마장면 덕평로 811N
WH0004창고_경기3경기도 김포시 대곶면 율생중앙로205번길N

3. Solution 🔑

  1. 창고의 아이디(WAREHOUSE_ID), 이름(WAREHOUSE_NAME), 주소(ADDRESS), [ 냉동시설 여부(FREEZER_YN)]
    • SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, FREEZER_YN
  2. 이때, 냉동시설 여부(FREEZER_YN)NULL값을 가질 경우, N으로 출력 그렇지 않다면 냉동시설 여부(FREEZER_YN) 값을 그대로 출력
    • CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END
  3. 해당 테이블에서 (FROM [테이블명])
    • FROM FOOD_WAREHOUSE
  4. 주소(ADDRESS)가 경기도에있는 곳
    • WHERE ADDRESS LIKE '경기도%'
  5. 창고 아이디(WAREHOUSE_ID)를 기준으로 오름차순 정렬
    - ORDER BY WAREHOUSE_ID ASC

4. Code 💻

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID ASC

5. Growth 🍄

CASE WHEN [필드명] [조건] THEN [True값] ELSE [False값] END

  • CASE WHEN' : 특정 케이스를 찾을 때 사용
    • CASE WHEN [필드명] : 필드명의 케이스가
    • [조건] THEN [True값] : 해당 조건을 충족하면 True값을,
    • ELSE [False값] END : 그렇지 않다면 False값을 나타내고 리턴해라.
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글