인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

전인수님의 프로필 이미지
전인수

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 기초 SQL

WHERE 해커랭크 문제풀이 1 + 중복된 값을 빼주는 DISTINCT

Weather Observation Station 6 문제 관련하여

작성

·

404

1

안녕하세요 선생님. 강의를 잘 듣고 있는 학생입니다.
커뮤니티의 답변을 보니 IN에는 %를 사용할 수 없다고 봤습니다.
그러면 Weather Observation Station 6번 문제의 쿼리를

SELECT DISTINCT name
FROM station
WHERE city LIKE 'i.e.%' or
city LIKE 'a%' or
city LIKE 'e%' or
city LIKE 'i%' or
city LIKE 'o%' or
city LIKE 'u%';

이 아니라

SELECT DISTINCT city
FROM station
WHERE IN(city LIKE 'i.e.%',
city LIKE 'a%',
city LIKE 'e%',
city LIKE 'i%',
city LIKE 'o%',
city LIKE 'u%');

로 작성하는거는 IN에 %를 쓰는 것이 아니라 LIKE 안에 사용하는데도 에러가 나는 이유를 알고 싶습니다.
또한 OR이 아니라 IN을 사용하여 해당 문제를 보다 효율적으로 쿼리를 작성할 수 있는 방법이 있는지 알고 싶습니다.

답변 1

1

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

WHERE IN(city LIKE 'i.e.%') 과 같이 IN의 괄호 안에 LIKE를 또 쓸 수는 없습니다.
안타깝지만 수업에서 알려드린 방법이 가장 간단한 작성법입니다.
다른 방법으로는 정규표현식을 사용하는 방법이 있을텐데, 짧게 작성할 수는 있겠지만 정규표현식 자체가 복잡해서 수업의 쿼리보다 쉬울 것 같지는 않아요. 궁금하시다면 정규표현식을 검색해 학습해 보시길 권장드립니다.

전인수님의 프로필 이미지
전인수
질문자

네 감사합니다.

전인수님의 프로필 이미지
전인수

작성한 질문수

질문하기