2010-02-19 37 views
29

我試圖逃避LIKE聲明中的下劃線字符。我曾嘗試使用ESCAPE關鍵字如下:如何在SQL Server中逸出_

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

,但它不工作。它仍然過濾出%xyz%,當我真的想過濾掉%_xyz%

如果不是ESCAPE關鍵字,那麼該如何實現呢?

任何幫助表示讚賞。

回答

40

只是這應該工作:

COLUMNNAME NOT LIKE '%[_]xyz%' 

您不需要這裏的ESCAPE。你寫的也應該有效。

如果你想使用ESCAPE你可以這樣做:轉義字符

columnname NOT LIKE '%\_xyz%' ESCAPE '\'; 

文檔是here

+1

謝謝,這工作。我不知道爲什麼它以前沒有工作,但現在非常感謝。 – 2010-02-19 23:40:38

15

使用brakets [_]

這對我的作品在SQL Server 2005

select * 
from #table 
where a like '%[_]xyz%' 
+0

+1:支持鏈接:http://sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-eg- in-sql-server.html – 2010-02-20 00:04:19

4

嘗試沒有括號:

COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'