IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

[DB2] Utilisation du like


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 20
    Par défaut [DB2] Utilisation du like
    Bonjour à ceux qui voudront bien m'aider et aux autres aussi d'ailleurs.

    Je cherche à écrire un select dans lequel la clause WHERE contiendrait une comparaison avec LIKE, mais il faudrait que le membre droit de ce LIKE contienne un select. Vu que c'est tout clair, je montre ce que j'essaye de faire :


    SELECT * from table1
    WHERE col1 not like '%' || (select col2 from table2) || '%' ;

    -> erreur : le 1er opérateur n'est pas de type chaîne ou le 2nd opérande n'est pas une chaîne


    j'avais pensé avec un "not in" mais le problème est que je veux que la chaîne cherchée puisse être entourée de n'importe quoi

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    ... et travailler avec une variable hôte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  '%'||col2||'%' INTO :MaCol from table2 ;
     
    SELECT * from table1 
    WHERE col1 not like :MaCol ;
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 20
    Par défaut
    Je n'avais pas bien précisé explicitement, mais le select effectué dans la table2 n'est pas restrictif : il va me retourner plusieurs lignes.
    Dans ce cas, ça ne marche pas.

  4. #4
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    Salut,

    En SQL2 Like ne fonctionne que sur 1 singleton, c'est pour ça que ta rq. ne fonctionne pas (les gurus du sql me corrigeront si je me trompe)
    Essaies ça je pense que ca correspond à ce que tu veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT T1.*
    FROM T1
    WHERE T1.C1 not in
    (select  T1.C1 FROM T1, T2 where  T1.C1 like "%" || T2.C1 || "%");

Discussions similaires

  1. Utilisation de "like" en jointure
    Par joker34 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2007, 12h45
  2. Utilisation du like (comme)
    Par Kihmé Xs dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/06/2007, 11h28
  3. [EJBQL] Utilisation du like
    Par khokho dans le forum Java EE
    Réponses: 7
    Dernier message: 24/05/2007, 16h45
  4. [SQL] Utilisations de like ?
    Par innova dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 01/01/2007, 23h16
  5. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo