如何在SQL Server中转义_?

时间:2010-02-19 23:21:14

标签: sql-server

我试图逃避LIKE声明中的下划线字符。我尝试使用ESCAPE关键字,如下所示:

COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'

但它不起作用。当我真的希望它过滤掉%xyz%时,它仍会过滤掉%_xyz%

如果不是ESCAPE关键字,那么如何实现呢?

感谢任何帮助。

3 个答案:

答案 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 '\'