Oracle 使用类似的返回结果选择(字符)
我在oracle 11g上运行plsql developer 我的select with like返回结果with(字符),尽管我没有请求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
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以查看其中是否存在其他错误名称,然后引起某人的注意并成为数据清理英雄。