Vous n'êtes pas identifié(e).

#1 06/10/2011 08:52:50

mortimer.pw
Membre

IN et LIKE

Bonjour,

Je n'ai pas trouvé le forum SQL, je me permets donc de poster dans PL/pgSQL.

Est-il possible d'utiliser IN et LIKE à la fois ?

Je m'explique:
     j'ai une liste de valeurs : PUBLICITE, CINEMA, PECHE.
     j'ai une table des livres (ID,LIBELLE) :
          1  LA PECHE A LA TRUITE
          2  LA PECHE EN MER
          3  A L'AFFICHE DU CINEMA
          4  ....
          5  AU CINEMA CE SOIR
          6  ....
          7  ....
          8  TOUTE LA PUBLICITE
          9  ....

je voudrai trouver tous les livres dont le libellé contient mes valeurs.

Question subsidiaire : est-ce que cela peut fonctionner également sous Oracle ?

D'avance merci pour les réponses.

Hors ligne

#2 06/10/2011 09:06:48

Marc Cousin
Membre

Re : IN et LIKE

Je ne pense pas qu'il y ait une syntaxe simple avec IN et LIKE à la fois. Vous pouvez par contre utiliser une syntaxe d'expression régulière:

http://www.postgresql.org/docs/9.0/inte … SIX-REGEXP

Les noms des fonctions ne sont pas identiques sous Oracle, mais il y a des fonctions approchantes (mais pas d'opérateur binaire comme ~ , à ma connaissance) : http://download.oracle.com/docs/cd/B193 … regexp.htm


Marc.

Hors ligne

#3 06/10/2011 09:48:24

rjuju
Administrateur

Re : IN et LIKE

Vous pouvez sinon écrire une requête du genre :
SELECT * FROM livre
JOIN (SELECT 'PUBLICITE' as lib UNION SELECT 'CINEMA' UNION SELECT 'PECHE') source ON libre."LIBELLE" like '%' || source.lib || '%'

même si cela reste peu pratique.

Hors ligne

#4 06/10/2011 10:43:29

mortimer.pw
Membre

Re : IN et LIKE

Rebonjour,
Ok, merci à vous.

Hors ligne

Pied de page des forums