[문제]

Query the list of CITY names from STATION which have vowels (i.e., a, e, i, o, and u) as both their first and last characters. Your result cannot contain duplicates.

Input Format

The STATION table is described as follows:

where LAT_N is the northern latitude and LONG_W is the western longitude.

 


 

[나의 풀이]

SELECT DISTINCT city
  FROM Station
  WHERE SUBSTRING(city, 1, 1) IN ('a','e','i','o','u')
  AND SUBSTRING(city, -1, 1) IN ('a','e','i','o','u')

 

출력 결과

 

CITY

 

Upperco
Aguanga
East China
East Irvine
Amo
Eleele
Oconee
Amazonia
Aliso Viejo
Andersonville
Arkadelphia
Eriline
Eastlake
Arispe
Ermine
Eufaula
Osborne
Elm Grove
Atlantic Mine
Oshtemo
Archie
Alpine
Ojai
Urbana
Alba
Eskridge
Ozona
Acme

 

 


 

[설명]

city 이름의 문자열의 일부를 추출하기 위해 SUBSTRING을 사용한다.

첫 번째 글자와 마지막 글자를 추출하여 a, e, i, o, u 가 들어있는 문자를 추출한다.

 

[문자열 일부 추출하기]

SUBSTRING(str, start, len)

str에서 start에서 시작해서 len의 길이까지 문자열을 읽어들인다.

 

SUBSTRING(city, 1, 1) : city의 문자열에서 첫 번째 글자 추출

SUBSTRING(city, -1, 1) : city의 문자열에서 마지막 글자 추출

 

LEFT(str, len)

왼쪽에서부터 len의 길이만큼 글자 추출

 

RIGHT(str, len)

오른쪽에서부터 len의 길이만큼 글자 추출

 

 


 

[다른 풀이]

SELECT distinct city
  FROM station
  WHERE city REGEXP '^[aeiou].*'
  AND city REGEXP '.*[aeiou]$'

[설명]

REGEXP (정규 표현식)을 사용하여 ^(시작)이 aeiou이고

$(끝)이 aeiou인 문자열 추출한다.

 

[Regular Expression (정규표현식)]

- 정규 표현식 : 특정한 규칙을 가진 문자열의 집합을

표현하는데 쓰이는 형식 언어

 

^a : a로 시작 (문자열 처음)

a$ : a로 끝나는 것
* : 문자열 끝
[abc] : a, b, c 중 하나 
^[abc] : a, b, c 중 하나로 시작하는 문자 
^[abc].* : a, b, c 중 하나로 시작하는 문자열 
[^abc] : a, b, c 전부 아님
 \d : 하나의 숫자 
.  : 문자 하나를 나타냄
.* : 문자의 반복 즉 문자열 
[a-z] : a부터 z까지

| : or를 나타냄

 

'Test > MYSQL' 카테고리의 다른 글

Average Population  (0) 2023.05.10
Type of Triangle (CASE WHEN/ THEN)  (0) 2023.05.08
Weather Observation Station 5  (0) 2023.05.07
Weather Observation Station 9  (0) 2023.05.06
강원도에 위치한 생산공장 목록 출력하기  (0) 2023.05.04

+ Recent posts