我试图逃避LIKE
声明中的下划线字符。我尝试使用ESCAPE
关键字,如下所示:
COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
但它不起作用。当我真的希望它过滤掉%xyz%
时,它仍会过滤掉%_xyz%
。
如果不是ESCAPE
关键字,那么如何实现呢?
感谢任何帮助。
答案 0 :(得分:42)
这应该有效:
COLUMNNAME NOT LIKE '%[_]xyz%'
这里不需要ESCAPE。你写的也应该有用。
如果你想使用ESCAPE,你可以这样做:
columnname NOT LIKE '%\_xyz%' ESCAPE '\';
有关转义字符的文档为here。
答案 1 :(得分:15)
使用brakets [_]
这适用于SQL Server 2005
select *
from #table
where a like '%[_]xyz%'
答案 2 :(得分:4)
不带括号尝试:
COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'