小编典典

如何查找不是以元音开头和结尾的城市名称

sql

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

一开始我尝试了这个:

select distinct CITY 
from STATION 
where (CITY NOT LIKE 'A%' 
  or CITY NOT LIKE 'E%' 
  or CITY NOT LIKE 'I%' 
  or CITY NOT LIKE 'O%' 
  or CITY NOT LIKE 'U%')
and (CITY NOT LIKE '%a' 
  or CITY not like '%e'  
  or CITY not like '%i' 
  or CITY not like '%o' 
  or CITY not like '%u');

但是我没有得到正确的答案,因此没有进行搜索并编写以下代码,但该代码也没有给出正确的答案:

select distinct CITY 
from STATION 
where regexp_like(lower(CITY),'^[^aeiou].');

我希望只显示那些以元音开头和结尾的城市名称,但在第一个查询中将显示所有城市名称,而在第二个查询中,将不显示以元音开头的所有城市名称。


阅读 302

收藏
2021-04-14

共1个答案

小编典典

更容易阅读的是:

    SELECT DISTINCT  CITY 
    FROM STATION 
    WHERE  SUBSTR(CITY,1,1) NOT IN ('A','E','I','O','U')
    AND SUBSTR(CITY,-1,1) NOT IN ('A','E','I','O','U');

请注意-1第二WHERE个子句中的,它告诉Oracle从字符串的末尾开始搜索。

2021-04-14