[프로그래머스 SQL 고득점 Kit] SELECT - 강원도에 위치한 생산공장 목록 출력하기

bee·2023년 6월 23일

SQL

목록 보기
2/4
post-thumbnail

🔎 문제

다음은 식품공장의 정보를 담은 FOOD_FACTORY 테이블입니다. FOOD_FACTORY 테이블은 다음과 같으며 FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미합니다.

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

예시

FOOD_FACTORY 테이블이 다음과 같을 때

출력





풀이1. INSTR() 함수를 활용한 방법

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE INSTR(ADDRESS, '강원도') != 0
ORDER BY FACTORY_ID;


풀이2. LIKE 절을 활용한 방법

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID;


풀이3. LOCATE() 함수를 활용한 방법

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE LOCATE('강원도', ADDRESS) != 0
ORDER BY FACTORY_ID;





✅ 정리

문자(열)의 위치 및 존재 여부 찾기

1. INSTR 함수

SELECT INSTR(찾을범위, '찾고자하는 문자(열)')

⏩ 결과

  • 0 : 찾고자 하는 문자(열)이 없는 경우
  • 찾고자 하는 문자(열)이 처음 나타나는 지점의 위치를 정수로 반환한다.
    (ex. 1번째 있다면 1을 리턴한다.)



2. LIKE 구문

  • 부분적으로 일치하는 칼럼을 찾을 때 사용된다.
  • 주로 WHERE문에 사용된다.
컬럼명 LIKE '%문자열%'

📌 와일드 카드

와일드 카드의미
%0개 이상의 문자열을 나타낸다.
?1개의 문자를 나타낸다.
[]대괄호([ ])안에 있는 문자를 나타낸다.
!대괄호([ ])안에 없는 문자를 나타낸다.
_임의의 1개의 문자를 나타낸다.
#임의의 1개의 숫자를 나타낸다.


3-1. LOCATE('찾고자하는 문자(열)', 찾을범위)

[결과]

  • 0 : 찾고자 하는 문자(열)이 없는 경우
  • 찾고자 하는 문자(열)이 처음 나타나는 지점의 위치를 정수로 반환한다.
    (ex. 1번째 있다면 1을 리턴한다.)

3-2. LOCATE('찾고자하는 문자(열)', 찾을범위, 탐색 시작 위치)

[결과]

  • 탐색 시작 위치부터 '찾고자 하는 문자(열)'이 처음 나타나는 지점의 위치를 정수로 반환한다.






🔗 References

profile
벌집처럼 밀도있게 차곡차곡 쌓아나가는중

0개의 댓글