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

Langage SQL Discussion :

clause LIKE avec 1 champ SQL


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 8
    Points
    8
    Par défaut clause LIKE avec 1 champ SQL
    Bonjour à tous,

    Je souhaiterais utiliser la clause LIKE avec non pas une chaine "brute", mais un autre champ de la requete. Je travaille sur Access 2000.
    Savez vous si celà est possible ? Si oui avec quelle syntaxe ?

    Exemple :
    SELECT id, NomPrenomFusionne, Nom, Prenom
    FROM maTable
    WHERE NomPrenomFusionne LIKE [Nom]

    J'ai essayé les syntaxes suivantes, sans succès :
    Nom
    [Nom]
    %[Nom]%
    "%[Nom]%"
    '%[Nom]%'
    "%"+[Nom]+"%"
    '%'+[Nom]+'%'

    Je remercie vraiment toute personne qui pourra me débloquer.

  2. #2
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    essaie avec :

    "%"&[Nom]&"%"

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    Merci pour ton aide
    Mais...hélas...non... le & ne fonctionne pas.

    Les méthode CONCAT et CONCATENER avec le % ne semblent pas fonctionner non plus.

    Pour info :
    - les types de données sont identiques
    - il y a des champs prénom inclus completement dans NomComplet
    - La casse est identiques (tous en majuscules)

    Voilà ma requête actuelle...qui ne retourne aucun enregistrement

    SELECT maTable.*
    FROM maTable
    WHERE NomComplet LIKE "%"&[Prénom]&"%";

    Une autre idée ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 779
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 779
    Points : 52 763
    Points
    52 763
    Billets dans le blog
    5
    Par défaut
    1) utilisez des noms d'objets (colonne, table...) conforme à la norme SQL, c'est à dire sans accent, blancs et autres caracrtères diacritiques

    2) supprimez les crochets.

    3) délimitez les chaines de caractères par des apostrophes et non des guillemts.

    Tout ceci fait partie de la norme SQL !

    La solution normative est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT *
    FROM maTable
    WHERE NomComplet LIKE '%' || Prenom || '%'
    Cependant, Access n'accepte pas la concaténation avec || mais +
    De plus certaines version d'Access exige le * à la place du joker % dans le like...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT *
    FROM maTable
    WHERE NomComplet LIKE '*' + Prenom + '*'

    En bref, Access n'accepte pas grand chose du langage SQL. Il a son propre langage qui le rend incompatible avec beaucoup de SGBDR !
    Changez de SGBDR, prenez plutôt MSDE ou SQL Server Express qui en plus d'être très normatif est très performant et gratuit, ce qui est loin d'être la cas d'Access !!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour ton aide !

    Effectivement, c'était bien le caractère * et non %.

    Concernant tes remarques sur les noms des objets, j'ai simplifié la requête pour le forum, mais en réalité tout est *autant que possible* conforme à la norme SQL(excepté les crochets, qui me semblaient nécessaires sur Access).

    Concernant Access, je comprend ta réaction. Je suis moi-même assez réticent à l'idée de construire des applications censées être solides, durables et évolutives avec des outils personnels.
    Même si la question que j'ai posée fait vraiment...newbie.. .j'ai plus l'habitude de travailler avec des sgbd tels que Postgresql, Oracle, MySQL (c'est encore un autre sujet), voir Ms SQL Server.

    Néanmoins, avant de conduire un tel changement il y a beaucoup d'aspects à prendre en compte, et le calcul est vite fait :
    - Les utilisateurs sont formés à Access
    - Ils ont besoin de souplesse, de flexibilité et de simplicité
    - L'environnement d'execution est assez "cloisonné"
    - Le poid de l'existant est important, il serait donc long et couteux de tout re-développer.
    - Nous travaillons sur la mise en place d'un infocentre, mais c'est à long terme.
    - D'autres projets attendent, et ont une plus forte valeur ajoutée.

    Donc désolé mais je n'ai pas d'autre choix que de continuer sur cet environnement...mais je te rejoint sur l'avis technique

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

Discussions similaires

  1. [AC-2010] Insert Into erreur "ODBC --Call Failed" avec un champ sql server Identify
    Par jayjazz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/05/2011, 13h17
  2. [AC-97] clause Where avec 2 champs
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2010, 18h37
  3. Signe % dans un LIKE avec une colonne SQL
    Par pmithrandir dans le forum Requêtes
    Réponses: 7
    Dernier message: 07/04/2008, 10h13
  4. access clause like avec gridview
    Par mapmip dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/04/2008, 15h57
  5. clause like avec variable
    Par youp_db dans le forum SQL
    Réponses: 6
    Dernier message: 11/06/2007, 09h40

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