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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,