tags:

views:

1138

answers:

1

I am trying to select data containing four percentage signs in a row. How can I escape the percentage signs so my LIKE condition works?

Thanks

+2  A: 

Use @% with the escape character clause:

select *
from tbl
where fld like '%@%%' escape '@'

This will search for all records that contain the "%" character in the fld column.

DB2/z has a slightly different format:

select *
from tbl
where fld like {escape '@'} '%@%%'

Obviously, you'll need to choose your escape character carefully so it won't interfere with the rest of your string but this is relatively easy for static strings. Dynamically built strings will require dynamically built queries so that it doesn't use a character from the string.

paxdiablo
You can choose any escape character as long as you double it up any time you use it literally in the LIKE string. LIKE '...' ESCAPE '...' is standard in ANSI SQL92.
bobince