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)

leftしかし、となしでそれを達成する方法は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 に答える