HackerRank Weather Observation Station 8
STATION 테이블에서 첫 번째 문자와 마지막 문자가 모음인 CITY 값을 중복 없이 출력하는 문제이다.
세 가지 방법으로 풀어보았다.
첫 번째 방법은 정규 표현식을 활용하는 것이고, 가장 좋은 방법이라 생각한다.
SELECT
DISTINCT CITY
FROM
STATION
WHERE
CITY REGEXP "^[aeiouAEIOU]"
AND CITY REGEXP "[aeiouAEIOU]$"
문자열 처리 함수인 LEFT()와 RIGHT()로도 풀 수 있다.
각 함수의 구조는 아래와 같고, 각각 왼쪽/오른쪽에서 길이만큼의 문자열을 반환한다.
SELECT
DISTINCT CITY
FROM
STATION
WHERE
LEFT(UPPER(CITY), 1) IN ("A", "E", "I", "O", "U")
AND RIGHT(UPPER(CITY), 1) IN ("A", "E", "I", "O", "U");
마지막은 LIKE 연산자를 활용한 풀이이다.
SELECT
DISTINCT CITY
FROM
STATION
WHERE
(
UPPER(CITY) LIKE "A%"
OR UPPER(CITY) LIKE "E%"
OR UPPER(CITY) LIKE "I%"
OR UPPER(CITY) LIKE "O%"
OR UPPER(CITY) LIKE "U%"
) AND (
UPPER(CITY) LIKE "%A"
OR UPPER(CITY) LIKE "%E"
OR UPPER(CITY) LIKE "%I"
OR UPPER(CITY) LIKE "%O"
OR UPPER(CITY) LIKE "%U"
);