我试图逃避LIKE
声明中的下划线字符。我曾尝试使用ESCAPE
关键字如下:如何在SQL Server中逸出_
COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
,但它不工作。它仍然过滤出%xyz%
,当我真的想过滤掉%_xyz%
。
如果不是ESCAPE
关键字,那么该如何实现呢?
任何帮助表示赞赏。
我试图逃避LIKE
声明中的下划线字符。我曾尝试使用ESCAPE
关键字如下:如何在SQL Server中逸出_
COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
,但它不工作。它仍然过滤出%xyz%
,当我真的想过滤掉%_xyz%
。
如果不是ESCAPE
关键字,那么该如何实现呢?
任何帮助表示赞赏。
只是这应该工作:
COLUMNNAME NOT LIKE '%[_]xyz%'
您不需要这里的ESCAPE。你写的也应该有效。
如果你想使用ESCAPE你可以这样做:转义字符
columnname NOT LIKE '%\_xyz%' ESCAPE '\';
文档是here。
使用brakets [_]
这对我的作品在SQL Server 2005
select *
from #table
where a like '%[_]xyz%'
+1:支持链接:http://sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-eg- in-sql-server.html – 2010-02-20 00:04:19
尝试没有括号:
COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'
谢谢,这工作。我不知道为什么它以前没有工作,但现在非常感谢。 – 2010-02-19 23:40:38