728x90

< 링크 >
여기를 클릭하세요 (프로그래머스 고득점 Kit 106문제 모음)

여기를 클릭하세요 (9. 강원도에 위치한 생산공장 목록 출력하기)

< 문제 >
FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.

< 내가 작성한 코드 >
SELECT factory_id, factory_name, address
from food_factory
where substr(address, 1, 2) = '강원'
order by factory_id asc;

< 풀이 >
1. 기본 구문을 작성했다. 문제에서는 공장ID, 공장이름, 주소를 조회하라고 했다.
SELECT factory_id, factory_name, address
from food_factory

2. 문제에서 '강원도에 위치한' 이라는 조건이 주어졌다.
주어진 데이터를 살펴 보았을 때 address 컬럼에서 데이터들이
경기도, 강원도, 경상북도, ... 처럼 광역자치단체 구분이 되어 있었고,
따라서 나는 address 컬럼 데이터의 첫 두 글자가 '강원' 이라면
원하는 데이터를 조회할 수 있겠다고 생각했다.

3. 그래서 'sql split' 을 검색하면서 문자열 자르기에 대한 함수를 알 수 있었다.
(참고 url : https://lily03.tistory.com/2 )

substr() 을 이용하면 이 문제에 접근할 수 있다.
substr(컬럼명, 시작위치, 갯수)
따라서 이 문제에서는
where substr(address, 1, 2) = '강원' 을 쿼리에 추가해야 한다.
address 컬럼 데이터의 첫 번째부터 두 글자라는 뜻이다.

4. 마지막으로 조회 결과를 공장ID를 기준으로 오름차순 정렬하라 했으므로
order by factory_id asc 를 추가하면 된다.

< 내가 최종 작성한 코드 >
SELECT factory_id, factory_name, address
from food_factory
where substr(address, 1, 2) = '강원'
order by factory_id asc;

+ Recent posts