https://school.programmers.co.kr/learn/courses/30/lessons/131114
문제설명
다음은 식품창고의 정보를 담은 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 |
solution.sql
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, if(FREEZER_YN is null, 'N', FREEZER_YN)
from FOOD_WAREHOUSE
where ADDRESS like '경기도%'
order by WAREHOUSE_ID
풀이
-조회 select
-탐색할 항목 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, FREEZER_YN
-조건에 따라 다르게 출력 if()
- if(FREEZER_YN is null, 'N', FREEZER_YN)
-탐색할 테이블 from FOOD_WAREHOUSE
-조건 where
-주소에 경기도가 포함된 곳 ADDRESS like '경기도%'
-정렬 order by WAREHOUSE_ID
아래는 조회 if() 사용법 아래 참고
if (조건 , 참일때 값, 거짓일 때의 값)
수동으로도 넣어 줄 수 있음
삼항연산자와 비슷한 개념으로 생각하면 좋음
https://www.w3schools.com/sql/func_mysql_if.asp
'웹언어 > mysql' 카테고리의 다른 글
SQL 강원도에 위치한 생산공장 목록 출력하기 | programmers 코딩테스트 (0) | 2024.06.10 |
---|---|
SQL 잡은 물고기 중 가장 큰 물고기의 길이 구하기 | programmers 코딩테스트 (0) | 2024.06.06 |
SQL 한 해에 잡은 물고기 수 구하기 | programmers 코딩테스트 (0) | 2024.06.05 |
[mysql] insert문 (2) | 2022.03.24 |
[MYSQL] DB 관리 프로그램 (2) | 2022.03.19 |