Ccomment échapper tous les wildcards d'une string automatiquement ?
Bonjour,
Disons que je fasse une requête dont une des colonnes (disons COL1) peut contenir 0,1,2 ou plus de caractères considérés comme wildcards, genre % _ [] ^ - ! * #
Comment est-ce que je pourrais faire pour rajouter dans ma requête une colonne COL2 qui comprendrait un like sur COL1 ? Je ne voudrais pas en effet que les wildcards soit interprêtés comme tels mais uniquement comme les caractères qu'ils sont. Je voudrais pouvoir échapper automatiquement tous les caractères "spéciaux". Est-ce qu'il n'y a pas un "truc" du genre faire précéder par @ ou @@ ma colonne COL1 pour qu'aucun des caractères la composant ne soit interprêté ?
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| select ID, COL1 from MyTable
=>
ID COL1
1 aaa%[re]
2 prefixaaabbb%[re]
3 prefixaaaccc%[re]
select 'prefix' + mt1.COL1 + '%', mt1.COL1, (case when exists(select 1 from #jjg mt2 where mt1.id = mt2.id and mt2.COL1 like 'prefix' + mt1.COL1 + '%') then 'MEME COL1 AVEC prefix EXISTE' else 'MEME COL1 AVEC prefix EXISTE PAS' end) as COL2
from MyTable mt1
Le rendu ici serait :
COL1 COL2
aaa%[re] MEME COL1 AVEC prefix EXISTE PAS
prefixaaabbb%[re] MEME COL1 AVEC prefix EXISTE PAS
prefixaaaccc%[re] MEME COL1 AVEC prefix EXISTE PAS
au lieu de ceci attendu :
COL1 COL2
aaa%[re] MEME COL1 AVEC prefix EXISTE
prefixaaabbb%[re] MEME COL1 AVEC prefix EXISTE PAS
prefixaaaccc%[re] MEME COL1 AVEC prefix EXISTE PAS |
Merci pour votre aide,