Първата ви заявка ще бъде правилна, ако използвате AND
вместо OR
.
Може да ви се стори по-проста логиката като:
where not (city like 'A%' or city like 'E%' or . . . ) and
. . .
По правилата на логиката това е еквивалентно на:
where city not like 'A%' and city not like 'E%' and . . . ) and
. . .
Що се отнася до регулярния израз, той има само сравнението в началото на низа:
where not regexp_like(lower(city), '^[aeiou].*[aeiou]$')