본문 바로가기
4.2 프로그래머스 & 코테문제/SQL 풀이

[Oracle/프로그래머스 LV.1] IS NULL / 경기도에 위치한 식품창고 목록 출력하기

by Dohi._. 2024. 7. 27.
728x90

문제링크

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

 

GIT [  github.com

 

문제설명

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

문제

 

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

 

풀이

이문제를 분석을하면 아래처럼 분석이 됩니다.

1. 경기도의 창고

2. NULL일경우엔 N로 출력 -> NVL 함수(혹은 NVL2함수이용)

3. 창고ID기준으로 오름차순

분석한 기준대로 SQL을 작성을하면

SELECT    WAREHOUSE_ID
        , WAREHOUSE_NAME
        , ADDRESS
        , NVL(FREEZER_YN,'N') AS FREEZER_YN -- null 값을 N로 분류 (2)
FROM      FOOD_WAREHOUSE 
WHERE     WAREHOUSE_NAME LIKE '%경기%'      -- 경기 창고구분 (1)
ORDER BY  WAREHOUSE_ID ASC;                 -- 창고ID 기준으로 오름차순(3)

 

들어간 메소드 정리

NVL(데이터,대체값) : 데이터가 null일경우 대체값으로 변환

NVL2(데이터,데이터2(값),대체값) : 데이터가 Null이 아니면  데이터2(값)으로 Null이면 대체값으로 변환

728x90

댓글