[英]How do I Select a substring in Oracle SQL after a specific word in the string?
我试图在“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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.