[TL; DR] Ваши LIKE
запросы не совпадают ни с одним символом, а с подстановочным знаком, поскольку оператор LIKE
не поддерживает регулярные выражения.
select distinct CITY
from STATION
where REGEXP_LIKE(lower(CITY), '^[^aeiou]')
or REGEXP_LIKE(lower(CITY), '[^aeiou]$');
Будетищите любой город, который начинается или заканчивается символом, который не является гласным.
select distinct CITY
from STATION
where lower(CITY) like '[!aeiou]%'
or lower(CITY) like '%[!aeiou]';
Оператор LIKE
не поддерживает регулярные выражения;таким образом, этот запрос ищет город, который начинается или заканчивается 8-символьной подстрокой, состоящей из символа [
, затем символа !
, затем символов гласной aeiou
, а затем символа ]
.
select distinct CITY
from STATION
where lower(CITY) not like '[aeiou]%'
or lower(CITY) not like '%[aeiou]';
Опять же, оператор LIKE
не поддерживает регулярные выражения;таким образом, этот запрос ищет город, который не начинается или не заканчивается на 7-символьную подстроку, состоящую из символа [
, затем символов aeiou
и затем ]
.
Если вы хотите использовать LIKE
, тогда:
select distinct CITY
from STATION
where ( lower(CITY) not like 'a%'
AND lower(CITY) not like 'e%'
AND lower(CITY) not like 'i%'
AND lower(CITY) not like 'o%'
AND lower(CITY) not like 'u%' )
or ( lower(CITY) not like '%a'
AND lower(CITY) not like '%e'
AND lower(CITY) not like '%i'
AND lower(CITY) not like '%o'
AND lower(CITY) not like '%u' );