Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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
Oracle 使用类似的返回结果选择(字符)_Oracle_Sql Like - Fatal编程技术网

Oracle 使用类似的返回结果选择(字符)

Oracle 使用类似的返回结果选择(字符),oracle,sql-like,Oracle,Sql Like,我在oracle 11g上运行plsql developer 我的select with like返回结果with(字符),尽管我没有请求 SELECT * FROM TableA a where a.cofiguration like '%a_mobile_sw'; 它还返回带有值a_mobile_sw和a_mobile(sw)的配置记录 虽然未被请求,但它如何返回包含“(”字符的记录?如果要搜索下划线字符,则需要对其进行转义,如下所示: SELECT * FROM TableA a

我在oracle 11g上运行plsql developer

我的select with like返回结果with(字符),尽管我没有请求

 SELECT  * FROM TableA a where a.cofiguration like '%a_mobile_sw';
它还返回带有值a_mobile_sw和a_mobile(sw)的配置记录


虽然未被请求,但它如何返回包含“(”字符的记录?

如果要搜索下划线字符,则需要对其进行转义,如下所示:

SELECT *
FROM   TableA a
where  a.cofiguration like '%a\_mobile\_sw' escape '\';

通过与
类似的比较,
%
是一个多字符通配符,而
是一个单字符通配符,这就是为什么您会看到奇怪的结果。通过转义下划线,您可以告诉Oracle将其视为下划线而不是通配符。

如果要搜索下划线字符,您需要为了逃避它,就像这样:

SELECT *
FROM   TableA a
where  a.cofiguration like '%a\_mobile\_sw' escape '\';

使用
like
比较,
%
是一个多字符通配符,而
是一个单字符通配符,这就是为什么会看到奇怪的结果。通过转义下划线,可以告诉Oracle将其视为下划线,而不是通配符。

使用
like
时,下划线与任何单字匹配e字符。我打赌您意外发现了错误数据。肯定
'a_mobile(sw'
不是正确的配置名称?您可能只想保留下划线,以便突出显示该问题!:-)至少在该列上选择distinct以查看是否有其他坏名称,然后引起某人的注意并成为数据清理英雄。当使用类似于
时,下划线匹配任何单个字符。我打赌您意外地发现了坏数据。当然
是移动的(sw'
不是正确的配置名称?您可能只想保留下划线以突出显示该问题!:-)至少在该列上选择distinct以查看其中是否存在其他错误名称,然后引起某人的注意并成为数据清理英雄。