Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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查询字符串_Sql_Oracle_Special Characters - Fatal编程技术网

Sql 包含连字符的Oracle查询字符串

Sql 包含连字符的Oracle查询字符串,sql,oracle,special-characters,Sql,Oracle,Special Characters,我在Oracle上运行的查询应该允许连字符。结果应与包含连字符的精确字符串匹配,如下所示: SELECT <field> FROM <table> WHERE LOWER(field) LIKE '%-pa%'; 选择 从…起 其中较低的(字段),如“%-pa%”; 然而,结果显示“网页”、“网页”以及“网页”。然而,在这种情况下,我只想找到“网页”和“网页”。我试图用反斜杠转义连字符,但结果没有找到任何记录。有谁能给我一个提示,告诉我怎么做吗?通常连字符不

我在Oracle上运行的查询应该允许连字符。结果应与包含连字符的精确字符串匹配,如下所示:

SELECT <field> 
  FROM <table> 
 WHERE LOWER(field) LIKE '%-pa%';
选择
从…起
其中较低的(字段),如“%-pa%”;

然而,结果显示“网页”、“网页”以及“网页”。然而,在这种情况下,我只想找到“网页”和“网页”。我试图用反斜杠转义连字符,但结果没有找到任何记录。有谁能给我一个提示,告诉我怎么做吗?

通常连字符不需要转义,但你可以试试

select <field> from <table> where lower(field) like '%X-pa%' escape 'X';
从较低的位置(字段)选择,如“%X-pa%”转义“X”;

您可以使用任意字符代替“X”

通常不需要转义连字符,但您可以尝试

select <field> from <table> where lower(field) like '%X-pa%' escape 'X';
从较低的位置(字段)选择,如“%X-pa%”转义“X”;

您可以使用任意字符来代替“X”,这不是我观察到的Oracle处理连字符的方式。以下是我看到的一个简单示例:

SQL> select * from fb;

ID
----------
Web-Page
Web Page
Web -Page

SQL> select * from fb where lower(id) like '%-pa%';

ID
----------
Web-Page
Web -Page

您确定没有使用下划线而不是连字符吗?下划线是一个单字符通配符。

我没有观察到Oracle如何处理连字符。以下是我看到的一个简单示例:

SQL> select * from fb;

ID
----------
Web-Page
Web Page
Web -Page

SQL> select * from fb where lower(id) like '%-pa%';

ID
----------
Web-Page
Web -Page

您确定没有使用下划线而不是连字符吗?下划线是单字符通配符。

什么版本或Oracle?什么版本或Oracle?不要介意。是我的错。我简化了我的示例查询,但也查询了另一列。没关系。是我的错。我简化了我的示例查询,但也在查询另一列。