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 :

Un Select dans un From?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Par défaut [Résolu] Un Select dans un From?
    Bonjour,

    je cherche à connaître le nom des tables d'une même base dont la valeur d'une colonne a une valeur bien précise. Aujourd'hui, je fais cela en deux temps:

    select table_name from all_tab_columns where column_name = 'CABASH_NUM'
    cela me donne les tables possédant la colonne

    puis, ensuite, pour chaque table trouvé, je passe la requête:
    select * from [Nom_De_Table_Trouvé] where CABASH_NUM = '0145254'

    pour savoir si cette table comporte bien la valeur que je recherche

    Or, je ne peux remplacer mon [Nom_De_Table_Trouvé] par ma première requête: d'une part, cela ne marche pas, d'autre part, le * dans mon second select ne veut rien dire car ce que je voudrais, c'est le nom de la table, donnée que ne comporte pas ladite table dans ces colonnes...

    je ne sais pas si je me suis bien fait comprendre...
    En tout cas, aujourd'hui, dans ce genre de cas, je dois faire à la main si pas trop de lignes, ou alors par un prog, mais je fais ce genre de demande trop souvent. Si kkun avait une solution pour un requêtage dynamique, ce serait bien sympa
    merci d'avance
    zouzou99

  2. #2
    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
    Par défaut
    Dans ce genre de cas je fais une requête qui génère des requêtes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 'SELECT * FROM ' || table_name || ' WHERE CABASH_NUM = ''0145254''' 
    FROM all_tab_columns WHERE column_name = 'CABASH_NUM'
    Il reste plus qu'à exécuter les résultats.

    SI tu peux trouver une cohérence entre les différentes possibilité, tu rajoutes un UNION ALL (ne pas oublier de supprimer le dernier), par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 'SELECT ''' || table_name || ''', count(*) FROM ' || table_name || ' WHERE CABASH_NUM = ''0145254'' UNION ALL' 
    FROM all_tab_columns WHERE column_name = 'CABASH_NUM'

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 34
    Par défaut Pas tout à fait cela, mais ce sera suffisant
    Mais vu ton niveau, ce que je demande est peut être impossible directement en dynamique!
    dopnc un grand merci, cela va bien m'aider
    a+
    zouzou99

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

Discussions similaires

  1. Sous-select dans la clause FROM
    Par DIJON dans le forum SQL
    Réponses: 16
    Dernier message: 16/11/2007, 18h24
  2. select dans la clause From
    Par bidson dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/03/2007, 15h22
  3. [SYBASE] Select case mais dans le from !!!
    Par soulriver dans le forum Sybase
    Réponses: 5
    Dernier message: 25/07/2005, 17h14
  4. Select dans from
    Par SegmentationFault dans le forum SQL
    Réponses: 3
    Dernier message: 30/07/2004, 17h13
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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