如何从 PL\SQL 中的字符串中选择最后 3 个单词?

Posted

技术标签:

【中文标题】如何从 PL\\SQL 中的字符串中选择最后 3 个单词?【英文标题】:How to select the last 3 words from a string in PL\SQL?如何从 PL\SQL 中的字符串中选择最后 3 个单词? 【发布时间】:2019-03-04 09:18:13 【问题描述】:

我有一列包含如下数据:

Eigen Foster 教授,犯罪学家博士

学生娜塔莉波特曼记者

维克多·摩根牙医

瑞士博士 M. Muriel Bayes 记者

我想看到的是:

Eigen Foster 犯罪学家

娜塔莉波特曼记者

维克多·摩根牙医

穆里尔·贝叶斯记者

我知道我应该以某种方式使用 regexp_substr,但我不知道如何使用 $ 作为起始位置。所以一个字符串中可能有不同数量的单词,但我总是需要最后 3 个单词。

【问题讨论】:

【参考方案1】:

试试这个正则表达式[^ ]+ [^ ]+ [^ ]+$

SELECT  regexp_substr('Professor Dr. Eigen Foster Criminalist', '[^ ]+ [^ ]+ [^ ]+$')FROM dual;
$ - 表示字符串结束 [^ ]+ - 表示至少一个字符但没有空格

【讨论】:

以上是关于如何从 PL\SQL 中的字符串中选择最后 3 个单词?的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL Regex 查找最后一个数字并拆分

PL/SQL 如何创建字符串函数=

如何在 SQL 或 PL/SQL 中查找给定字符串(列数据)中的第 5 个字符? [关闭]

如何传递从多个表创建的 PL/SQL 游标记录?

如何在选择语句的“NOT IN”子句中使用逗号分隔的字符串列表作为 pl/sql 存储的函数参数

与前一个密码有 3 个不同字符的密码 - PL/SQL