Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 逃逸';%';在使用Oracle时';s正则表达式类函数_Sql_Regex_Database_Oracle - Fatal编程技术网

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+%,');