경기도에 위치한 식품창고 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131114
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 문제
FOOD_WAREHOUSE 테이블은 다음과 같으며
WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는
창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.
경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요.
이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고
결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
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
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
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;
'Programmers Coding Test > MySQL' 카테고리의 다른 글
[프로그래머스 131535] MySQL - Level1 조건에 맞는 회원수 구하기 (0) | 2023.08.16 |
---|---|
[프로그래머스 131112] MySQL - Level1 강원도에 위치한 생산공장 목록 출력하기 (0) | 2023.08.11 |
[프로그래머스 131697] MySQL - Level1 가장 비싼 상품 구하기 (0) | 2023.08.11 |
[프로그래머스 131528] MySQL - Level1 나이 정보가 없는 회원 수 구하기 (0) | 2023.08.09 |
[프로그래머스 59034] MySQL - Level1 모든 레코드 조회하기 (0) | 2023.08.09 |