728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131114
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
반응형