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

SQL Oracle Discussion :

SQL qui n'affiche que les colonnes NON NULL


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 15
    Points : 7
    Points
    7
    Par défaut SQL qui n'affiche que les colonnes NON NULL
    Hello l'équipe ^^

    J'essaie d'écrire une requête SQL sous Oracle 12 qui n'afficherait QUE les colonnes non null.

    De base, je requête la vue DBA_USERS mais l'affichage de sortie est horrible ; j'essaie d'éviter le fastidieux formatage colonne par colonne.
    Concrètement, je veux faire un affichage lisible de

    select * from dba_users where username='SYSTEM'

    pour avoir toutes les informations NON NULL des colonnes de la table DBA_USERS relatif à cette clé. Quelle bidouille je peux utiliser selon vous ?

    Crob

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Si je comprends bien tu veux que ta requête ne retourne pas les colonnes pour lesquelles toutes les lignes sont à NULL.

    Cela signifierait qu'il faille tester pour chaque colonne si elle ne contient aucune valeur pour la sélection effectuée, puis construire la requête en ne conservant que les colonnes qui ont répondu à ce critère.
    Une simple requête ne suffit pas ; il faut une procédure en PL/SQL qui effectue toutes ces actions pour construire dynamiquement la requête attendue.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Erf ... c'est pas tout à fait ça ;

    j'aimerai que la requête renvoie toutes les lignes de la table qui correspondent à USERNAME=SYSTEM (c'est à dire qu'une seule ligne en sortie)
    et QUE les colonnes où il y a des valeurs NON VIDE, pour ne pas avoir d'apparition de NOM DE COLONNE avec AUCUNE VALEUR DEDANS.

  4. #4
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Cette solution implique forcément un test de chaque colonne pour savoir si elle est valorisée ou non pour la sélectionner, donc cela passe par du PL/SQL dynamique.

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    json_object avec la clause « absent on null » fera cela

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/04/2017, 10h27
  2. [11gR2] N'afficher que les colonnes qui ont une valeur!
    Par Ikebukuro dans le forum SQL
    Réponses: 4
    Dernier message: 06/02/2017, 13h17
  3. [XL-2003] combobox doit afficher que les cellules non vides
    Par mikadoo57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/04/2012, 14h30
  4. Réponses: 6
    Dernier message: 17/06/2008, 14h49
  5. ETAT : n'afficher que les données non vides
    Par Proview dans le forum IHM
    Réponses: 7
    Dernier message: 17/10/2006, 13h52

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