sql - 如何在字符串中的特定单词之后选择 Oracle SQL 中的子字符串?
问题描述
我试图在“Hændelse”一词之后提取以下字符串中的所有内容。
细绳:
Recordtype001[ efternavn = Nymark.] Adr2: 7020 Trondheim Hændelse A06: Udrejse er modtaget fra CPR-registeret.
我曾尝试使用 REGEXP_SUBSTR - 但它只返回字符串 't."' 的结尾。
我希望它返回
A06: Udrejse er modtaget fra CPR-registeret.
这是我尝试过的:
WITH data AS
(
SELECT '"Recordtype001[ efternavn = Nymark.] Adr2: 7020 Trondheim Hændelse A06: Udrejse er modtaget fra CPR-registeret."' string
FROM dual
)
SELECT string,
REGEXP_SUBSTR(string, '[^Hændelse]+$') new_string
FROM data;
解决方案
您的正则表达式不符合您的要求。您正在定义一个字符类,该字符类不得包含字符串 ' 中的字符Hændelse'
。基本上,它在字符串末尾寻找除'H'
, 'æ'
, 'n'
, 'd'
, 'e'
, 'l'
, 's'
,之外的一系列字符。'e'
一种选择是regexp_replace()
:
regexp_replace(string, '^.*Hændelse\s*', '') new_string
请注意,使用简单的字符串函数会更有效地完成此操作(虽然有点复杂):
ltrim(substr(string, instr(string, 'Hændelse') + length('Hændelse'))) new_string
推荐阅读
- breeze - 在服务器端获取 BreezeJS ODATA 查询参数以在查询期间更新实体
- android - Android JNI检索当前本地引用数?
- php - 自动递增父数组的 PHP 语法
- python - 每个条目而不是全部的 SQL 条件计数
- android - Android 手机在读取消息后才检测到彩信
- java - 如何使用哈希图迭代和填充 writeFields() 参数
- multithreading - 负载下降后,线程会粘在周围
- reactjs - Recoil.js:在 React 实例之间共享状态?
- python - 有什么方法可以在 Windows 中使用命令行安装 Python。?
- pytorch - 使用多处理在 CPU 上运行变形金刚预测