Sql 逃逸';%';在使用Oracle时';s正则表达式类函数
我一直在搜索我的问题,但没有找到一个。如果是重复的,我道歉 假设我有一张如下所示的表格:Sql 逃逸';%';在使用Oracle时';s正则表达式类函数,sql,regex,database,oracle,Sql,Regex,Database,Oracle,我一直在搜索我的问题,但没有找到一个。如果是重复的,我道歉 假设我有一张如下所示的表格: |ACCOUNT | FEES_DETAILS | ================================ |AX001 | AOF=£20.5,VAT=25% | |AX009 | AOF=11.25%,VAT=12.5%| 当FEES_DETAILS列具有基于%的AOF时,我希望获取所有行(在上面的示例中,我需要获取第二条记录-AX009,因为AOF=11.25%)
|ACCOUNT | FEES_DETAILS |
================================
|AX001 | AOF=£20.5,VAT=25% |
|AX009 | AOF=11.25%,VAT=12.5%|
当FEES_DETAILS列具有基于%的AOF时,我希望获取所有行(在上面的示例中,我需要获取第二条记录-AX009,因为AOF=11.25%)
我正在执行以下查询,但未返回任何行:
我认为正则表达式末尾的%
被视为一个特殊字符,所以我尝试用\
对其进行转义。但这也没有返回任何行。在类似于函数的REGEXP\u中,是否有其他方法可以转义%
?有人能帮我吗?试试这个:
select * from test where REGEXP_LIKE(fees,'AOF=\d+.\d+%,');
删除
?:
中的(?:…)
您的费用明细是否只有两个值?即AOF和VAT?实际上,您的查询不应该对费用详细信息
的单独部分感兴趣,因为如果它们感兴趣,您将有一个费用详细信息
表,其中的值已经存储在单独的行中。因此,这里要处理的可能是数据库设计中的一个缺陷。
select * from test where REGEXP_LIKE(fees,'AOF=\d+.\d+%,');