如何在SQL Server中转义_?

Jam*_*mas 29 sql-server

我试图逃避LIKE声明中的下划线字符.我试过使用ESCAPE如下关键字:

COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助表示赞赏.

Mar*_*ers 42

这应该工作:

COLUMNNAME NOT LIKE '%[_]xyz%'
Run Code Online (Sandbox Code Playgroud)

你这里不需要ESCAPE.你写的也应该有用.

如果你想使用ESCAPE,你可以这样做:

columnname NOT LIKE '%\_xyz%' ESCAPE '\';
Run Code Online (Sandbox Code Playgroud)

有关转义字符的文档在这里.


Jos*_*ama 15

使用brakets [_]

这适用于SQL Server 2005

select *
from #table 
where a like '%[_]xyz%'
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 5

不带括号试试:

COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'
Run Code Online (Sandbox Code Playgroud)