Найдите имена сотрудников, чье имя содержит более двух «а» и заканчивается на «s». ORACLE SQL - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь выбрать из таблицы имена сотрудников, чье имя содержит два «а» и заканчиваются на «s». Вот что у меня есть select NAME from CLASS where NAME LIKE '%s'

Я знаю, как найти имена, заканчивающиеся на s, но не знаю, как искать имена, имеющие по крайней мере два «а».

Ответы [ 4 ]

3 голосов
/ 23 января 2020

Я что-то упустил, или вы просто не могли написать

select NAME from CLASS where LOWER(NAME) LIKE '%a%a%a%s'

?

Это выбирает каждое имя, которое имеет по крайней мере три (то есть более двух) a с и заканчивается s.

1 голос
/ 23 января 2020

Нашли решение: select NAME from CLASS where NAME LIKE '%s' and REGEXP_COUNT(NAME, 'a') > 2;

1 голос
/ 23 января 2020

Один из вариантов:

where regexp_count(name, 'a', 1, 'i') = 2
  and substr(lower(name), -1) = 's'
  • количество букв 'a' - начиная с позиции 1, выполняя поиск без учета регистра ('i') = 2
  • последний символ 's'
0 голосов
/ 24 января 2020

Попробуйте это:

select NAME from test where regexp_like(NAME,'[a]{2}[a-z]*[s]$');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...