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 :

problème avec ma requete contenant un "in" :


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut problème avec ma requete contenant un "in" :
    Je résume rapidement mon problème :

    J'ai une table X avec à l'interieur parmi les autres, une colonne "ListeMois" qui représentent une série de mois (allant de 1 à 12) séparé par une ","

    Dans ListeMois je peux donc avoir une valeur comme par exemple : 1,6
    Cela représentera Janvier et juin

    Mon problème est dans la requete suivante : Je voudrai toutes les lignes de X avec le mois de janvier

    J'aimerai pouvoir faire quelque chose comme :
    select * from X where 1 in (ListeMois)

    Mais apparement le sql ne veut pas avoir des colonnes dans le in, et ne tolère que des valeurs discrètes comme par exemple "in (1,6,7)"

    Quelqu'un aurait il une idée de contournement ?

    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Si je résumes dans ta table X, tu peux avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ... ListeMois
    ... 1,6
    ... 2,4,12
    ... 3
    etc.
    Si c'est bien ça alors je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE ListeMois LIKE '%,1%' or ListeMois LIKE '1,%' or ListeMois LIKE '1';
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Pour me simplifier la requête, en général je fais un truc du genre (ici, on suppose que la virgule est le séparateur unique) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ',' || ListeMois || ',' LIKE '%,1,%'
    où || est l'opérateur de concaténation (pour certains SGBDR c'est +
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT * 
    FROM   X 
    WEHRE  1 in (SELECT ColMois 
                 FROM   TableMois)
     
    -- Ou par exemple TableMois contient :
    ColMois
    --------
    1
    5
    7
    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/ * * * * *

Discussions similaires

  1. Problème avec une requete contenant du double
    Par marsupilami34 dans le forum VBA Access
    Réponses: 0
    Dernier message: 07/02/2008, 15h32
  2. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45
  3. [debutant]Problème avec une requete ....
    Par MichMich29 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/07/2005, 17h19

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