0

我想在 VARCHAR 字段(包括)中第一次出现字符“M”后删除所有内容。

所以SELECT regexp_replace('The world Mine is mine')

应该产生:'The world '

这相当于

SELECT left('The world Mine is mine',INSTR('The world Mine is mine','M',1,1)-1)

但是,如何在没有leftand的情况下实现这一点instr?很高兴得到回应。

4

1 回答 1

0

您可以为此使用捕获组:

SELECT regexp_replace('The world Mine is mine', '(.*)(M.*)', '\1')

返回

regexp_replace
--------------
The world     

正则表达式非常昂贵,使用left()并且instr()很可能会更快。

于 2016-07-07T11:20:24.640 回答