Bonjour,
Je voudrais utiliser dans une jointure la fonction LIKE avec :
WHERE T1.a LIKE T2.b
T2.b pouvant contenir le masque % ou autre donnée pouvant correspondre au contenu de T1.a.
Est-possible ?
Cordialement
Bonjour,
Je voudrais utiliser dans une jointure la fonction LIKE avec :
WHERE T1.a LIKE T2.b
T2.b pouvant contenir le masque % ou autre donnée pouvant correspondre au contenu de T1.a.
Est-possible ?
Cordialement
Bonjour,
La syntaxe de la chaîne de caractère après le like nécessite guillemets. A l'intérieur des guillemets tu peux mettre tout type de chaîne, avec un (ou des) %, un _ (qui remplace un caractère). Attention, c'est sensible à la majuscule.
Manoutz
Merci pour la réponse. Ce qui veux dire que je ne peux pas utiliser le contenu d'un champs pour remplacer ce qui doit être entre guillemets ?
Cordialement
Si mais c'est une écriture un peu plus avancée. Tout dépend du but escompté.
Je ne sais pas très bien comment l'expliquer. L'idée est bien de pour faire une jointure entre deux table a et b sachant les éléments de jointure présents dans chaque table correspondent à une table de décision pouvant prendre comme valeur dans la table b :
- % ou * signifiant n'importe quelle valeur du champ
- une valeur exacte
Je ne sais pas si je suis clair ?...
Sinon pouvez me donner un exemple, ce sera peut-être parlant pour moi ?
Cordialement
Hé bien j'ai l'impression que ça fonctionne, à condition d'ajouter un % supplémentaire en fin d'expression.
Dans mon exemple, j'ai prévu le cas "*" que tu décris comme équivalent à %.
Bon courage.
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
22
23
24
25
26
27
28
29
30
31
32 DATA work.t1 ; INPUT a $ ; x = _N_ ; CARDS ; abcd cccc adfe efgh ; RUN ; DATA work.t2 ; INPUT b $ ; y = _N_ ; CARDS ; efgh a% % %c% * ; RUN ; PROC SQL ; SELECT * FROM work.t1 INNER JOIN work.t2 ON t1.a LIKE CATS(CASE (t2.b) WHEN ("*") THEN "" ELSE t2.b END,"%") ; QUIT ;
Olivier
Bon courage.
Olivier
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager