강의

멘토링

로드맵

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

qjarl1119님의 프로필 이미지
qjarl1119

작성한 질문수

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

OR 조건 간소화

작성

·

8

0

안녕하세요, 강의를 듣고 있는 인프런 학습자입니다!
중복이 없는 시티 필드를 출력하는 DISTINCT 예제 중

select city From
station where
city like 'a%'
or city like 'e%'
or city like 'o%'
or city like 'i%'
or city like 'u%';

이라는 구문이 있는데 or 조건은 항상 각각 조건을 명시해줘야하는걸까요?
정규식을 제외하고 따로 간소화가 불가할지 궁금해서 질문 드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. qjarl1119님!

OR 조건을 간소화하는 방법에 대한 질문을 주셨군요. SQL에서 여러 조건을 결합할 때 OR 연산자는 각 조건을 명시적으로 쓸 수밖에 없다고 생각할 수 있지만, 특정 패턴을 찾는 경우에는 정규 표현식을 사용할 수도 있습니다. 하지만 정규 표현식을 제외하고 각 조건을 간소화하는 방법은 SQL 자체적으로는 제공되지 않습니다.

다만, 간소화된 형태로 유사한 조건을 처리할 수 있는 방법을 찾는다면, 데이터를 효율적으로 구성하거나 프로그램 로직을 통해 조건을 더 이해하기 쉽게 처리하는 방법을 고려해볼 수 있습니다.

비록 정규 표현식을 제외하고는 직접적으로 OR 조건을 간소화하기 어려울 수 있지만, 작성하신 질문에 대한 비슷한 사례로는 정규 표현식을 사용한 방법이 참고될 수 있습니다. 이와 관련된 유사 질문은 이미 커뮤니티에서 논의되었습니다.

위 URL에서 정규 표현식을 활용한 SQL 쿼리 작성법을 확인할 수 있습니다. 정규 표현식을 사용하면 아래처럼 더욱 간결하게 쓸 수 있습니다:

SELECT DISTINCT city
FROM station
WHERE city REGEXP '^[aeiou]';

이 방식은 기본적으로 정규 표현식을 이용하는 방법이기 때문에 질문하신 정규식을 ‘제외하고’의 조건에서는 벗어날 수 있지만, 강력한 문자열 패턴 매칭의 예로 들어 설명드렸습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

qjarl1119님의 프로필 이미지
qjarl1119

작성한 질문수

질문하기