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 :

une clause WHERE avec un Joker


Sujet :

Développement SQL Server

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut une clause WHERE avec un Joker
    Bonjour à tous.

    Je sais que am question va sembler basique, amis bizarremnt, je ne trouve pas de réponse clair sur les doc disponible sur internet, trés certainement parce que je ne dois pas employer les bons mots clé de recherche.

    Alors voilà ce que je voudrais faire : une requête SELECT qui prend une clause WHERE mais dans laquelle on peut envoyer un Joker.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MaTable WHERE unChamp = *
    Cette requete remonte tous les enregistrements tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MaTable WHERE unChamp = 1
    Cette requête remonte tous les enregistrements pour lesquels unChamp est égale à 1

    Du coup, je peux envoyer la clause WHERE en paramettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE PROCEDURE MaPorc (@Clause VARCHAR(10)) AS
     
    SELECT * FROM MaTable WHERE unChamp = @Clause
    Et donc avec ça, je suis trés souple.

    La chose que je ne trouve pas c'est ce que je met à la place de *
    Voire même je n'ai pas trouvé formellement écrit que c'était impossible. Dans ce dernier cas peut-être avez vous une solution de remplacement ?

    Pouvez vous m'aider ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Hello Zoofi.
    Personnellement, je ferais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE PROCEDURE MaPorc (@Clause VARCHAR(10)) AS
    if @Clause = '*'
    SELECT * FROM MaTable
    else 
    SELECT * FROM MaTable WHERE unChamp = @Clause

  3. #3
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Vous pouvez par exemple utiliser ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM 
    MaTable 
    WHERE unChamp = @Clause 
    OR @Clause IS NULL
    ++

  4. #4
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Salut Jérome, quel plaisir de te croiser ici.

    Merci Mike, je vais retenir ta solution, je la trouve sexy.
    Mais surtout, avec elle je vais pouvoir le faire sur plusieurs clause WHERE En même temps. J'ai oublié de le dire dans mon exposé, désolé.

    Mais, merci Jerome tout de même.

    De toute façon, je vais revenir ouvrir d'autre topic, je viens de découvrir que j'ai un truc assez balaise à faire et je m'en sors pas. Mais on verra ça demain.

    Merci à vous deux et bonne journée.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM MaTable 
    WHERE unChamp = @Clause 
    OR @Clause IS NULL
    Effectivement, c'est plus souple, je m'incline !

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

Discussions similaires

  1. [MySQL] Creer une clause WHERE avec deux conditions donne erreur
    Par Salsaboy60 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/04/2014, 10h39
  2. Variable d'une clause where avec quote
    Par kcizth dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/04/2008, 15h43
  3. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 09h55
  4. [Oracle / Sql] clause where avec resultat d'une requete
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h37
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05

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