본문 바로가기
코딩테스트/ORACLE

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

by 얼쩡 2024. 4. 18.
반응형

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

Column name Type Nullable
WAREHOUSE_ID VARCHAR(10) FALSE
WAREHOUSE_NAME VARCHAR(20) FALSE
ADDRESS VARCHAR(100) TRUE
TLNO VARCHAR(20) TRUE
FREEZER_YN VARCHAR(1) TRUE

 

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

예시
FOOD_WAREHOUSE 테이블이 다음과 같을 때

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

 

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

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

 

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, 
    CASE FREEZER_YN 
        WHEN 'Y' THEN 'Y'
        ELSE 'N'
    END FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%';

 

동작 순서

 > FROM : FOOD_WAREHOUSE 테이블에서 데이터를 가져옴
 > WHERE : ADDRESS 열이 '경기도'로 시작하는 행만 선택
 > SELECT : 선택된 행에서 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, 및 FREEZER_YN을 가져옴                     FREEZER_YN 열은 CASE 문을 사용하여 'Y'일 때는 'Y'로, 그렇지 않으면 'N'으로 표시
 > ORDER BY : 선택된 행을 기본적으로 정렬하지 않고 반환

반응형