Oracle REGEXP_SUBSTR()

时间:2023-03-08 17:17:33
Oracle REGEXP_SUBSTR()

REGEXP_SUBSTR函数格式如下:

function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
      __srcstr     :需要进行正则处理的字符串

__pattern    :进行匹配的正则表达式

__position   :起始位置,从第几个字符开始正则表达式匹配(默认为1)

__occurrence :标识第几个匹配组,默认为1
      __modifier   :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)

比如下面这个结果,我们想对du列按百分比降序排序

SQL> select * from MONITOR_DBTBS.DISK_USAGE;

DB             DISK_NAME          DU
-------------------- -------------------- ----------
phaoa1             /              45%
phaoa1             /boot          19%
phaoa1             /dev/shm          0%
phaoa1             /home          52%
phaoa1             /oracle          33%
phaoa1             /status          2%
phaoa1             /tmp          13%
phaoa1             /usr          51%
phaoa1             /var          49%
phaoa1             /worktmp          57%
phaoa1             /PHAOA_D00       75%
就可以如下:

SELECT *
  FROM MONITOR_DBTBS.DISK_USAGE
WHERE TO_NUMBER (REGEXP_SUBSTR (du, '[0-9]*', 1))>=70  order by du desc;