获取城市名称既不以元音开头也不以元音结尾

Ani*_*yan 0 sql oracle

从 STATION 查询不以元音开头且不以元音结尾的 CITY 名称列表。您的结果不能包含重复项。

输入格式

STATION表描述如下:

FIELD    TYPE
ID       NUMBER
CITY     VARCHAR2(21)
STATE    VARCHAR2(2)
LAT_N    NUMBER
LONG_W   NUMBER
Run Code Online (Sandbox Code Playgroud)

我写了下面的查询,但它不起作用。有什么建议吗?

SELECT DISTINCT (CITY) 
FROM STATION  
WHERE NOT regexp_like(lower(CITY),'^[aeiou].*') 
  AND regexp_like(lower(CITY),'.*[aeiou]$');
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 5

您可以尝试这个版本:

SELECT DISTINCT CITY
FROM STATION
WHERE REGEXP_LIKE(CITY, '^[^aeiouAEIOU].*[^aeiouAEIOU]$');
Run Code Online (Sandbox Code Playgroud)

这里的正则表达式模式匹配不以元音开头和结尾的城市白名单。这是正则表达式模式的解释:

^              from the start of the city name
[^aeiouAEIOU]  match a single non vowel character (lowercase or uppercase)
.*             match any zero or more middle characters
[^aeiouAEIOU]  match another single non vowel character
$              end of the city name
Run Code Online (Sandbox Code Playgroud)