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

Développement SQL Server Discussion :

where item1 contains item2


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut where item1 contains item2
    Bonjour

    Est-il possible en SQL de faire un where d'une colonne contenant (ou pas) un substring d'une autre colonne avec la sytaxe contains ?

    Je ne comprends pas tres bien l'usage du contains car je peux le faire avec un like

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    CONTAINS ne fait pas partie des mots réservés du langage SQL !

    Si le LIKE répond à ton besoin, utilises-le !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci CINEPHIL

    Et peux tu dire dans quel contexte Contains qui semble présent en MS SQL serait pertinent ?

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Ça permet beaucoup plus d'options qu'un simple LIKE, on est plus dans la recherche textuelle que dans la comparaison d'une colonne à une valeur.

    La doc Microsoft est assez complète sur ce sujet :
    http://msdn.microsoft.com/fr-fr/library/ms187787.aspx

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Waldar

    Mais a la lecture (rapide) de cette doc je n'ai toujours pas clairement compris ce que CONTAINS peut faire qu'on ne peut pas faire avec un LIKE

    Et en cherchant sur Google je ne suis manifestement pas le seul a me poser cette question

    J'utilise donc toujours un Like qui satisfait pleinement le besoin

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Avec un LIKE, la recherche porte sur la chaîne de caractère exacte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT les_colonnes
    FROM la_table
    WHERE une_colonne LIKE '%part%'
    Pourra donner comme résultat :
    - Particulier
    - Appartement
    - Départ

    D'après la doc, CONTAINS comporte un argument qui précise la nature de la recherche. On pourra ne retenir avec CONTAINS que les mots dont le préfixe est 'part' et éliminer de la liste ci-dessus les deux derniers mots.
    OK, ça peut aussi se faire avec un LIKE 'part%' ! Mais il y a d'autres options au CONTAINS non réalisables avec un LIKE.

    Ceci dit, ce n'est pas du SQL Standard, si j'en crois la liste de mots dont j'ai donné le lien dans un autre message plus haut.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [PROC] WHERE CONTAINS + prompt
    Par thtghgh dans le forum SAS Base
    Réponses: 0
    Dernier message: 12/12/2013, 15h33
  2. problème de Contains dans une clause where
    Par niko59480 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 13/12/2012, 14h02
  3. quelqu'un connait-il le where contains ?
    Par blastfr dans le forum SAS Base
    Réponses: 2
    Dernier message: 04/07/2008, 00h23
  4. Clause WHERE contains()
    Par Rocou dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 25/10/2007, 18h21

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