Как выбрать последние 3 слова из строки в PL \ SQL? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть колонка с такими данными:

Профессор, доктор Эйген Фостер, криминалист

Студент Натали Портман, журналист

Виктор Морган, стоматолог

Швейцарский доктор Мюриэль Байес, йоруналист

То, что я хочу видеть, это:

Эйген Фостер Криминалист

Натали ПортманЖурналист

Виктор Морган Стоматолог

Мюриэль Байес Jorunalist

Я знаю, что должен как-то сделать это с regexp_substr, но я не знаю, как использовать $ для начальной позиции.Так что в строке может быть разное количество слов, но мне всегда нужны последние 3 слова.

1 Ответ

0 голосов
/ 28 сентября 2018

Попробуйте это регулярное выражение [^ ]+ [^ ]+ [^ ]+$

SELECT  regexp_substr('Professor Dr. Eigen Foster Criminalist', '[^ ]+ [^ ]+ [^ ]+$')FROM dual;
  • $ - означает конец строки
  • [^] + - означает по крайней мере один символ, но без пробелов
...