如何从 PL/SQL 中的字符串中删除最后 3 个单词?
How to remove the last 3 words from a string in PL/SQL?
我有这样的字符串:
Jack & Bauer Limited Company Bristol
Streetfood Limited Company München
Brouse with High Jack UnlimiteD Company London
我想要的只是公司名称,例如:
Jack & Bauer
Streetfood
Brouse with High Jack
所以在任何情况下,我都必须删除最后 3 个单词,因为名称可以包含很多单词。
我知道我必须使用正则表达式,但我不知道如何使用。
这是一种方法:
select regexp_replace(str, '( [^ ]+){3}$', '')
Here 是一个 rextester。
虽然您可以使用正则表达式来做到这一点,但您不必这样做。可以使用 INSTR 和 SUBSTR 的组合来完成此任务:
SELECT SUBSTR(FIELD1, 1, INSTR(FIELD1, ' ', -1, 3)-1) AS NAME
FROM TABLE1
祝你好运。
我有这样的字符串:
Jack & Bauer Limited Company Bristol
Streetfood Limited Company München
Brouse with High Jack UnlimiteD Company London
我想要的只是公司名称,例如:
Jack & Bauer
Streetfood
Brouse with High Jack
所以在任何情况下,我都必须删除最后 3 个单词,因为名称可以包含很多单词。 我知道我必须使用正则表达式,但我不知道如何使用。
这是一种方法:
select regexp_replace(str, '( [^ ]+){3}$', '')
Here 是一个 rextester。
虽然您可以使用正则表达式来做到这一点,但您不必这样做。可以使用 INSTR 和 SUBSTR 的组合来完成此任务:
SELECT SUBSTR(FIELD1, 1, INSTR(FIELD1, ' ', -1, 3)-1) AS NAME
FROM TABLE1
祝你好运。