Weather Observation Station 11
Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels. Your result cannot contain duplicates.
모음으로 시작하지 않거나 모음으로 끝나지 않는 도시 이름의 리스트를 출력하는 문제. 중복은 허용하지 않는다.
-- LEFT, RIGHT 사용
SELECT DISTINCT city
FROM station
WHERE LEFT(city, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
OR RIGHT(city, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
-- SUBSTR 사용
SELECT DISTINCT city
FROM station
WHERE SUBSTR(city, 1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
OR SUBSTR(city, -1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
-- REGEXP 정규표현식 사용
SELECT DISTINCT city
FROM station
WHERE city REGEXP '^[^aeiou]' -- ^ : 시작하는 문자, 여러 문자 비교 []로 묶어주기
OR city REGEXP '[^aeiou]$' -- $ : 끝나는 문자, 같지 않다 ^
-- LIKE 사용 (AND와 OR 사용 주의!)
SELECT DISTINCT city
FROM station
WHERE (city NOT LIKE '%a'
AND city NOT LIKE '%e'
AND city NOT LIKE '%i'
AND city NOT LIKE '%o'
AND city NOT LIKE '%u') OR
(city NOT LIKE 'a%'
AND city NOT LIKE 'e%'
AND city NOT LIKE 'i%'
AND city NOT LIKE 'o%'
AND city NOT LIKE 'u%')
💡
문자열
이 해당 문자
를 포함하고 있는지 아닌지 알아보는 방법 여럿이다.
1) LIKE
, NOT LIKE
사용
2) IN
, NOT IN
사용
- LEFT(city, 1) : city 문자열 가장 왼쪽에서, 한 글자만 가져오겠다
- RIGHT(city, 1) : city 문자열 가장 오른쪽에서, 한 글자만 가져오겠다
- SUBSTR(city, -1, 1) : city 문자열, 마지막, 한 글자
3)REGEXP
정규표현식 사용
실무에서는 LEFT
, RIGHT
, SUBSTR
을 많이 쓴다