SQL 정규표현식 사용하기
해커랭크에서 HackerRank: Weather Observation Station 6 문제를 풀다가 정규표현식을 어떻게 사용하는지 찾아보았다.
해당 문제는 모음으로 시작하는 CITY 이름(중복 없이)을 찾아야한다.
나는 처음에 다음과 같이 문제를 풀었다.
SELECT DISTINCT(CITY)
FROM STATION
WHERE CITY LIKE 'A%' OR 'E%' OR 'I%' OR 'O%' OR 'U%';
하지만 위의 풀이는 틀린 풀이였고, 어떻게 하면 모음으로 시작 하는 CITY 를 찾을 수 있을지 고민했다.
(알고보니까 LIKE 를 여러개 나열하려면 OR CITY LIKE 를 계속 써줬어야 했다.
SQL 공부 갈길이 멀다!!)
SELECT DISTINCT(CITY)
FROM STATION
WHERE CITY LIKE 'A%'
OR CITY LIKE 'E%'
OR CITY LIKE 'I%'
OR CITY LIKE 'O%'
OR CITY LIKE 'U%';
이를 위해서는 REGEXP_LIKE 를 사용해서 SQL 에서 정규표현식을 사용하면 된다.
REGEXP_LIKE 는 다중 LIKE 상황을 간단하게 줄여준다.
우선 답은 다음과 같다.
SELECT DISTINCT(CITY)
FROM STATION
WHERE REGEXP_LIKE(CITY, '^A|^E|^I|^O|^U');
^
는 시작을 의미하고, $
는 끝을 의미한다.
따라서 ^A
는 A로 시작하는을 의미한다.
(A로 끝나는 컬럼을 찾고 싶다면 A$
이렇게 쓰면된다.)
Author And Source
이 문제에 관하여(SQL 정규표현식 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zhezhe0206/SQL-정규표현식-사용하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)