[프로그래머스] 경기도에 위치한 식품창고 목록 출력하기 - SQL / Lv.1

ByungJik_Oh·2025년 8월 21일
0

[Programmers - SQL]

목록 보기
4/39
post-thumbnail

💡 문제

다음은 식품창고의 정보를 담은 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를 기준으로 오름차순 정렬해주세요.


💭 접근

우선 이 문제를 해결하기 위해 LIKE 절과 IFNULL() 함수를 이용해야 한다.

먼저, IFNULL() 함수를 이용하여 FREEZER_YN 출력시 해당 열에 존재하는 NULL 값을 N으로 대체해준다.

이후, LIKE 절을 이용하여 경기도에 위치한 식품창고만 골라내야 하는데,
이때 WAREHOUSE_NAME열과 ADDRESS열을 사용할 수 있다.

먼저 WAREHOUSE_NAME 열은 (창고_경기1, 창고_충북1, ...) 과 같이 저장되어 있으므로 LIKE 절 조건을 %%%경기% 로 지정하여 앞선 세글자 뒤에 '경기'라는 문자가 시작하는지 확인하고,

ADDRESS 열의 경우엔 (경기도 안산시 ..., 충청북도 진천군 ..., ...) 과 같이 저장되어 있으므로 LIKE 절 조건을 경기%로 지정하여 맨 앞 두글자가 '경기'라는 문자로 시작하는지 확인하면 된다.


📒 코드

# 조건 WAREHOUSE_NAME
SELECT  WAREHOUSE_ID
        ,WAREHOUSE_NAME
        ,ADDRESS
        ,IFNULL(FREEZER_YN, 'N')
  FROM  FOOD_WAREHOUSE
 WHERE  WAREHOUSE_NAME LIKE ('%%%경기%')
 ORDER
    BY  WAREHOUSE_ID ASC;
    
# 조건 ADDRESS
SELECT  WAREHOUSE_ID
        ,WAREHOUSE_NAME
        ,ADDRESS
        ,IFNULL(FREEZER_YN, 'N')
  FROM  FOOD_WAREHOUSE
 WHERE  ADDRESS LIKE ('경기%')
 ORDER
    BY  WAREHOUSE_ID ASC;

💭 후기

IFNULL 함수를 이용해 NULL 값을 대체하고, LIKE 절을 이용하여 해당 지역이름을 포함하는 행을 조회하는 간단한 문제였다.


🔗 문제 출처

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


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글