다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. FOOD_WAREHOUSE 테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요.
이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
Food Warehouse Information
Food Warehouse Information
WAREHOUSE_ID
WAREHOUSE_NAME
ADDRESS
TLNO
FREEZER_YN
ABC123
Warehouse A
123 Main St, City
123-456-789
Y
DEF456
Warehouse B
456 Elm St, Town
987-654-321
N
GHI789
Warehouse C
789 Oak St, Village
Y
2) 예시
예를 들어 FOOD_WAREHOUS 테이블이 다음과 같다면
Food Warehouse Information
Food Warehouse Information
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
WH0004
창고_경기3
경기도 김포시 대곶면 율생중앙로205번길
031-671-1900
N
WH0005
창고_충남1
충청남도 천안시 동남구 광덕면 신덕리1길 9
041-876-5421
Y
SQL문을 실행하면 다음과 같은 값이 나와야합니다.
Food Warehouse Information
Food Warehouse Information
WAREHOUSE_ID
WAREHOUSE_NAME
ADDRESS
FREEZER_YN
WH0001
창고_경기1
경기도 안산시 상록구 용담로 141
Y
WH0003
창고_경기2
경기도 이천시 마장면 덕평로 811
N
WH0004
창고_경기3
경기도 김포시 대곶면 율생중앙로205번길
N
3) 풀이
1. 아이디, 이름, 주소, 냉동시설 여부를 조회합니다.
● SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, FREEZER_YN FROM FOOD_WAREHOUSE
2. 냉동시설 여부가 NULL이라면 N값으로 출력합니다.
● IFNULL(FREEZER_YN, 'N')
※ IFNULL(값1, 값2)
IFNULL은 NULL이 아니라면 값1을 반환하고,
NULL이라면 값2를 반환합니다.
3. 주소가 경기도인 것만 분류합니다.
● WHERE ADDRESS LIKE '%경기도'
※ LIKE
문자열 비교를 위한 연산자로, 문자열이 특정패턴과 일치하는지 확인하는 용도입니다.
LIKE 'a%'는 'a'로 시작하는 모든 문자열을 선택하고,
LIKE '%a'는 'a'로 끝나는 모든 문자열을 선택합니다.
또한, LIKE '%ab%'는 'ab'를 포함하는 어떤 위치에 있든 문자열을 선택합니다.
※ %
문자열 와일드카드로, 어떤 문자열이든 올 수 있음
※ _
문자 와일드카드로, 하나의 문자가 올 수 있음
4. ID의 오름차순으로 정렬합니다.
● ORDER BY WAREHOUSE_ID ASC
4) 코드
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기도%'
ORDER BY WAREHOUSE_ID ASC;