포스트

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

Oracle 문제

문제 설명

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

예시

FOOD_WAREHOUSE 테이블이 다음과 같을 때

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

풀이

풀이 조건

  1. 창고의 ID, 이름, 주소, 냉동 시설 여부를 출력하며 창고 ID 기준으로 오름차순
  2. 주소(ADDRESS)가 경기도인 데이터
  3. 냉동시설 여부(FREEZER_YN)가 NULL이라면 N을 출력

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

풀이 방식

  1. NVL 함수를 사용하여 NULL일 경우 N, 아닐 경우 FREEZER_YN를 출력한다.
  2. ADDRESS 열에서 ‘경기도’가 포함된 행만 찾는다.
  3. 창고 ID(WAREHOUSE_ID) 기준으로 오름차순한다.

제출 코드

1
2
3
4
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, NVL(FREEZER_YN, 'N') AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기도%'
ORDER BY WAREHOUSE_ID ASC;
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.