tags:

views:

117

answers:

3

I am trying to escape the underscore character in a LIKE Statement. I have tried to use the ESCAPE keyword as follows:

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

but it doesn't work. It is still filtering out %xyz% when I really want it to filter out %_xyz%.

If not by the ESCAPE keyword, how else can this be accomplished?

Any help is appreciated.

+4  A: 

use brakets [_]

This works for me in SQL Server 2005

select *
from #table 
where a like '%[_]xyz%'
Jose Chama
+1: Supporting link: http://sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-e-g-in-sql-server.html
OMG Ponies
+2  A: 

Just this should work:

COLUMNNAME NOT LIKE '%[_]xyz%'

You don't need the ESCAPE here. What you wrote should also work.

If you do want to use ESCAPE you could do this:

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

Documentation on escape characters is here.

Mark Byers
Thanks, this worked. I am not sure why it wasn't working before but it does now so much appreciated.
James Thomas
A: 

Try it without the brackets:

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