2010-02-19 9 views
29

Ich versuche, den Unterstrich in einem LIKE Statement zu entkommen. Ich habe versucht, das ESCAPE Schlüsselwort wie folgt zu verwenden:Wie entkomme ich _ in SQL Server?

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

, aber es funktioniert nicht. Es filtert immer noch %xyz% aus, wenn ich wirklich möchte, dass es %_xyz% ausfiltert.

Wenn nicht durch das Schlüsselwort ESCAPE, wie sonst kann dies erreicht werden?

Jede Hilfe wird geschätzt.

Antwort

40

Nur sollte diese Arbeit:

COLUMNNAME NOT LIKE '%[_]xyz%' 

Sie die ESCAPE hier nicht brauchen. Was du geschrieben hast, sollte auch funktionieren.

Wenn Sie ESCAPE verwenden möchten können Sie dies tun:

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

Dokumentation auf Escape-Zeichen ist here.

+1

Danke, das hat funktioniert. Ich bin mir nicht sicher, warum es vorher nicht funktioniert hat, aber es wird jetzt so sehr geschätzt. –

15

Verwendung brakets [_]

Dies funktioniert für mich in SQL Server 2005

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

+1: Unterstützung Link: http://sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-eg- in-sql-server.html –

4

Probieren Sie es ohne die Klammern:

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