1. 문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
CAR_RENTAL_COMPANY_CAR 테이블에서 OPTIONS 컬럼에 '네비게이션'이 존재하고 결과를 ID를 기준으로 내림차순 정렬하여 출력하는 문제다. OPTIONS 컬럼 도메인은 '주차감지센서', '스마트키', '네비게이션', '통풍시트', '열선시트', '후방카메라'이다. 데이터는 다음과 같이 저장되어 있다.
2. 풀이
이 문제의 핵심은 LIKE 연산자를 사용하는 것이다. 컬럼 값에 특정 문자열이 존재하는지 여부를 확인할 때 사용하는 LIKE 연산자는 다음과 같이 사용할 수 있다.
- A로 시작하는 값 : A%
- A로 끝나는 값 : %A
- 중간에 A가 포함된 값 : %A%
여기서 %는 와일드 카드라고 부르는데 앞, 뒤로 존재하는 다른 문자들이 매칭된다. 즉 A%는 APPLE, ANT, ARMY 등이 모두 해당된다는 것이다. 만약 한 글자만을 해당되게 하고 싶다면 %이 아닌 _를 사용하면 된다.
✏️정답 쿼리
SELECT car_id,
car_type,
daily_fee,
options
FROM car_rental_company_car
WHERE options LIKE '%네비게이션%'
ORDER BY car_id DESC
=> options 값에 '네비게이션'을 갖는 데이터들을 자동차 ID(car_id)를 기준으로 내림차순(DESC) 정렬하여 출력
'[Programmers] > - SQL' 카테고리의 다른 글
[Oracle][Programmers] 조건에 부합하는 중고거래 댓글 조회하기(Lv 1) (0) | 2025.05.23 |
---|---|
[Oracle][Programmers] 과일로 만든 아이스크림 고르기 (0) | 2025.05.22 |
[Oracle][Programmers] 조건에 맞는 도서 리스트 출력하기 (1) | 2025.05.21 |
[Oracle][Programmers] 평균 일일 대여 요금 구하기 (0) | 2025.05.20 |
[Oracle][Programmers] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2025.05.19 |