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 :

Utilisation de la clause LIKE [2008R2]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 7
    Points : 12
    Points
    12
    Par défaut Utilisation de la clause LIKE
    Bonjour à tous,

    Je souhaiterais utiliser la clause LIKE avec non pas une chaîne "brute", mais un autre champ de la requête. Je travaille sur SQL SERVER 2008 R2.
    J'ai utilisé cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT REF,REFCO
    FROM ART
    WHERE REF LIKE '%'+ REFCO +'%' 
    ORDER BY REFCO
    La requête s’exécute sans erreur mais rend aucun résultat , alors que je devais trouver le résultat suivant par exemple:

    REF REFCO
    ---- --------
    A715B 715
    A715C 715
    715DS 715
    A200B 200
    TRC200 200

    .....etc
    Le champ REF contient toujours le champ REFCO.

    Quelqu'un a-t-il une idée pour corriger la requête?

    Merci d'avance pour votre aide .

    Cdt

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 698
    Points : 586
    Points
    586
    Par défaut
    REFCO c'est bien du texte ?

    ET

    LIKE '%'+ Ltrim(Rtrim(REFCO)) +'%'


    ça donne quelque chose ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2013
    Messages : 17
    Points : 57
    Points
    57
    Par défaut
    ici, ça marche bien :

    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
     
    CREATE TABLE MyReferences (REF VARCHAR(20),REFCO VARCHAR(20))
    GO
    INSERT INTO MyReferences VALUES
    ('A200C','200')
    ,('T715S','715')
    ,('Q20A','20')
    ,('T715D','715')
    ,('T715C','715')
    ,('EX01EX','888') -- ligne non conforme exprès
    GO
    SELECT
    *
    FROM MyReferences 
    WHERE REF LIKE '%' + REFCO + '%'
    --Résultat :
    --REF	REFCO
    --A200C	200
    --T715S	715
    --Q20A	20
    --T715D	715
    --T715C	715

  4. #4
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Lors de ton premier message ton Champ REFCO n'est-il pas de Type Char(XX) a la place d'un varchar(XX)?

    Si oui ceci explique le problème car SQL SERVER dans un CHAR(XX) va compléter ta chaine avec des espaces ...

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Declare @Texte char(5);
    Set @Texte = 'A'
     
    Select '%'+@Texte +'%'
    Le résultat sera

    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 7
    Points : 12
    Points
    12
    Par défaut
    Bonsoir à tous,

    Désolé pour le retour tardif, effectivement c'était à cause des espaces ajoutés sur les champs REF et REFCO pour compléter les 8 caractères. Donc, comme la suggérer Donpi que je remercie bcp, en ajoutant Ltrim pour supprimer les espaces à gauche, ce fonctionne très bien. Merci bcp à vous mes amis(es) du forum BI et à bientôt pour d'autres casse-têtes SQL

    Cdt
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete SQL croisée avec la clause Like
    Par Orgied dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/03/2006, 16h36
  2. SQL Access: clause like?
    Par rapace dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/02/2006, 14h39
  3. performance clause like / starting with
    Par KRis dans le forum SQL
    Réponses: 2
    Dernier message: 20/01/2006, 14h42
  4. [ODBC] Problème d'utilisation de la clause LIMIT
    Par Thierry8 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/10/2005, 09h55
  5. Probleme dans une clause like !
    Par adil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/07/2003, 16h47

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