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 :

Selectionner des colonnes sur critère


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut Selectionner des colonnes sur critère
    Bonjour !

    Existe-t-il un moyen en SQL de ne sélectionner que des colonnes qui satisfont certains critères ?

    Je m'explique --> une requête du genre :
    "Selectionner uniquement les colonnes dont les valeurs entre une date t1 et une date t2 sont strictement positives" (les autres colonnes n'ayant pas alors d'importance).

    Ou faut il sélectionner toutes les colonnes puis faire un traitement à postériori ?

    Merci pour vos réponses.

  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
    Pas dur !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM taTable
    WHERE (date1 - date2) > 0
    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 confirmé Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut
    Salut CinePhil.

    Cette requête que tu me donnes va me selectionner toutes les colonnes dans les lignes qui satisfont aux dates.

    Moi ce qui je voudrais c'est justement trier les colonnes dans ce résultat. Des colonnes qui -par exemple- ne sont pas NULL (il me sert à rien d'avoir un tableau de résultat de requête avec une colonne où il n'y a que des valeurs NULL).

    Je sais que j'ai du mal à expliquer et que ce n'est pas très clair Je m'en excuse

  4. #4
    Membre éclairé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select macolonne1, macolonne5, macolonne200
    from...

  5. #5
    Membre confirmé Avatar de Mayhem555
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut
    Désolé je pense que j'ai pas été très explicite

    Je vais tenter de donner un exemple.

    Voila une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    col1    col2     col3
    --------------------
    null     null        3
    1        null        null
    2        null         4
    null    null          9
    Moi je voudrais par exemple que quelque soit le SELECT, il ne me retourne jamais la col2 car elle est toujours null....bien sûr je ne connais pas le contenu de la base avant de faire mon select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from table WHERE col3>3
    va me retourner un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    col1    col2     col3
    --------------------
    2        null          4
    null    null          9
    et moi je voudrais omettre la colonne 2 car une colonne avec que des NULL n'est pas intéreressante pour mon appli, donc avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    col1    col3
    --------------------
    2           4
    null       9
    Donc une requête du style :

    SELECT ("COLONNES OÙ AU MOINS UNE VALEUR EST NON-NULL") FROM table where col3>0

    merci !

  6. #6
    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
    Non, c'est impossible en pur SQL.

    Il faut construire votre requête dans une procédure par exemple en fonction des résultats.

    Par contre il faut m'expliquer comment une application peut digérer un resultset dont la structure n'est pas figée.

  7. #7
    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
    Si les colonnes ne contiennent que des nombres, tu peux essayer un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT 
    CASE
      WHEN (SELECT SUM(Col1)
                FROM taTable
      ) > 0 THEN Col1
    END, 
    CASE
      WHEN (SELECT SUM(Col2)
                FROM TaTable
      ) > 0 THEN Col2
    FROM TaTable
    WHERE Col3 > 0
    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. Rajouter titre et nom des colonnes sur fichier texte
    Par pierre24 dans le forum ODS et reporting
    Réponses: 6
    Dernier message: 22/04/2008, 10h44
  2. Masquer / démasquer des lignes sur critère.
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 28/02/2008, 01h54
  3. selectionner des donnees sur 3 tables
    Par DI_2007 dans le forum 4D
    Réponses: 5
    Dernier message: 05/09/2007, 15h44
  4. affichage des colonnes sur 2 lignes !
    Par DBA_doom dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/05/2007, 15h44
  5. [VB.NET] DataGrid : titre des colonnes sur deux lignes
    Par Lahouari dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/12/2004, 14h44

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