2009-03-31 6 views
9

J'essaie de sélectionner des données contenant quatre signes de pourcentage d'affilée. Comment puis-je échapper aux signes de pourcentage pour que ma condition LIKE fonctionne?Signe de pourcentage d'échappement DB2 SQL

Merci

+0

Puis-je suggérer de changer la question en "pourcentage d'échappement ou signe de soulignement dans DB2 SQL", car cela fonctionne également pour le trait de soulignement? Cela aidera les gens à trouver cette question/réponse. –

Répondre

12

Utilisez @% avec la clause de caractère d'échappement:

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

Cette recherchera tous les enregistrements qui contiennent le caractère "%" dans la colonne fld.

DB2/z a un format légèrement différent:

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

De toute évidence, vous devrez choisir avec soin votre caractère d'échappement afin de ne pas interférer avec le reste de votre chaîne, mais ce qui est relativement facile pour chaînes statiques. Les chaînes construites dynamiquement nécessiteront des requêtes créées de manière dynamique afin d'éviter l'utilisation d'un caractère de la chaîne.

+1

Vous pouvez choisir n'importe quel caractère d'échappement tant que vous le doublez à chaque fois que vous l'utilisez littéralement dans la chaîne LIKE. LIKE '...' ESCAPE '...' est standard dans ANSI SQL92. – bobince

Questions connexes