我需要在SQL查询的LIKE子句中包含特殊字符“%”,例如:
Select * From Some_Table Where Field_Name Like 'bla%bla&2';
我该怎么写?
答案 0 :(得分:4)
如果您想匹配包含' bla%bla& 2'的Field_Name值,那么您需要写一下:
this
您可以指定要使用哪个字符来转义后续字符(感谢应该转到mathguy,而不是我)。您还必须set define off
Select * From Some_Table Where Field_Name Like '%bla\%bla&2%' escape '\';
以防止sqlplus尝试替换字符串中的值。
但是,如果要匹配与给定字符串完全相同的Field_Name值,则执行此操作:
set define off
答案 1 :(得分:1)
如果我没有误会你用反斜杠(\)
逃脱它们requireInteraction
答案 2 :(得分:1)
使用escape \来处理是一个文字
SELECT *
FROM Some_Table
WHERE Field_Name LIKE 'blah\%'|| 'blah' ||'&'|| '2';
答案 3 :(得分:0)
我猜你是否正在使用一种工具将&n
视为变量标记,其中n
是一个数字。如果您正在使用SQL * Plus或SQL Developer,则需要发出SQL * Plus命令SET DEFINE OFF
。其他工具可能会使用其他方法来实现此目的。
祝你好运。
答案 4 :(得分:0)
我不认为反斜杠转义字符在这里可用于&符号。相反,您需要使用双管将搜索划分为连接字符串。在每段文字文本周围使用单引号。接下来,更换&与chr(38)这是&符号。您可以通过以下方式看到:
select chr(38) from dual
您仍然希望在%之前加入反斜杠,并使用escape' \'完成语句。注意,我没有引用chr(38)。
select * From Some_Table Where Field_Name Like 'bla\%bla'||chr(38)||'bla' escape '\'