카테고리 없음

[Programmers] 경기도에 위치한 식품창고 목록 출력하기 (IFNULL, CASE WHEN, LIKE, %)

DS지니 2023. 10. 28. 22:53
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

 

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN,"N") FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE "%경기도%"
ORDER BY WAREHOUSE_ID;

 

1. '경기도 위치한'

: WHERE ~ LIKE 사용. LIKE 뒤에 "%경기도%" 를 넣어주면 ADDRESS 컬럼에서 '경기도'가 들어간 행을 모두 찾아준다.

 

2. '냉동시설 여부가 NULL인 경우, 'N'으로 출력' (2가지 방법)

(1) IFNULL(컬럼명, "000") 을 사용할 수 있다. "000" 안에 NULL 행을 어떤 문자열로 바꿔줄 것인지 입력하면 된다.

(2) CASE WHEN 으로 조건문을 만들 수 있다.

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

만약(CASE WHEN) 컬럼명이 "IS NULL"일 경우, 그렇다면(THEN) "N"으로 출력. 그렇지 않으면(ELSE) 컬럼명의 행 그대로 출력. 조건 시작은 CASE WHEN으로 시작하여 조건이 끝날 때는 END로 끝내준다.

END 뒤에 "AS FREEZER_YN" 을 지정해 컬럼명이 "FREEZER_YN"으로 나오게 지정해줄 수 있다.

 

3.  "창고 ID를 기준으로 오름차순 정렬"

: ORDER BY 컬럼명 (ASC)

728x90
반응형