本文介紹REGEXP_LIKE函數的使用場景。
背景說明
Oracle支持REGEXP_LIKE函數,但是PolarDB O引擎不支持該函數。
在Oracle中具體使用如下:
SQL> SELECT * FROM xmldemo WHERE REGEXP_LIKE (B, '^f([a-z]+)e$');
A B
---------- --------------------
20 firstline
解決方案
使用POSIX正則表達式進行改寫
,similar to
和‘~’
可以支持正則表達式匹配。van=> SELECT * FROM xmldemo WHERE b SIMILAR to 'f([a-z]+)e';
a | b
----+-----------
20 | firstline
(1 row)
或者
van=> SELECT * FROM xmldemo WHERE b ~ 'f([a-z]+)e';
a | b
----+-----------
20 | firstline
(1 row)
詳情請參見https://www.postgresql.org/docs/11/functions-matching.html#FUNCTIONS-POSIX-REGEXP