oracle查询时忽略数据中括号,空格或者其他符号(非参数)

需求:

客户要求模糊查询时不带括号仍可查询

数据:('测试(2020)1019 ')末尾带两个空格

在这里插入图片描述
输入条件为 测试20201019或者20201019(不带空格)

select *
from T_TEST
--where REGEXP_REPLACE(trim(C_XM), '\(|\)', '',1,0,'i') 
--like REGEXP_REPLACE('测试20201019', '\(|\)', '',1,0,'i')

where REGEXP_REPLACE(trim(C_XM), '\(|\)', '') 
like REGEXP_REPLACE('测试20201019', '\(|\)', '')

结果:

在这里插入图片描述

regexp_replace函数,一共有6个参数,前三个必填

1.需要替换的数据,也可以是数据库的某一列

2.正则表表达式(用来匹配需要替换和部分)

3.替换结果

4.开始位置,不填默认是1

5.替换方式 0代表全部替换,正数代表替换第n个匹配的子串

6.匹配方式

‘i’不区分大小写
‘c’区分大小写

上面两种比较常用,下面的是搜的还没用过

‘n’允许‘.’(句点,配置任意字符)匹配换行符,如果省略此此参数,则句点与换行符不匹配
‘m’将源字符串视为多行。Oracle将源字符串中的^或$视为行首或行尾,如果省略此参数,Oracle将源字符串视为单行
‘x’忽略空格字符。默认情况下,空白字符与自身匹配。

以前并没有注意,其实oracle中的大部分函数不仅可以用于参数,也可以用于字段,用来忽略数据中的某些条件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值