2009-03-31 22 views
9

Estoy intentando seleccionar datos que contengan cuatro signos de porcentaje en una fila. ¿Cómo puedo escapar de los signos de porcentaje para que mi condición LIKE funcione?Signo de porcentaje de escape DB2 SQL

Gracias

+0

¿Puedo sugerir cambiar la pregunta a "Porcentaje de escape o signo de subrayado en SQL de DB2" ya que esto también funciona para el guión bajo? Eso ayudará a las personas a encontrar esta pregunta/respuesta. –

Respuesta

12

Use @% con la cláusula carácter de escape:

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

Esto buscará todos los registros que contienen el carácter "%" en la columna de la fld.

DB2/z tiene un formato ligeramente diferente:

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

Obviamente, usted tiene que elegir su carácter de escape con cuidado para que no interfiera con el resto de la cadena, pero esto es relativamente fácil para cuerdas estáticas Las cadenas creadas dinámicamente requerirán consultas generadas dinámicamente para que no use un carácter de la cadena.

+1

Puede elegir cualquier carácter de escape siempre que lo duplique cada vez que lo use literalmente en la cadena LIKE. LIKE '...' ESCAPE '...' es estándar en ANSI SQL92. – bobince

Cuestiones relacionadas