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

Oracle Discussion :

[Oracle 9.2]Utiliser un alias dans une contrainte ?


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Points : 61
    Points
    61
    Par défaut [Oracle 9.2]Utiliser un alias dans une contrainte ?
    Bonjour,

    Voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT CASE 
      WHEN zozo = 'NA' THEN 'Val1'
      ELSE 'Val2' AS myalias
      FROM Table1, Table2
      WHERE Table1.ID=Table.ID
      AND Table1.ID = myalias
    et le probleme est que Table1.ID=myalias ne marche pas : nom incorrect

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 125
    Points : 102
    Points
    102
    Par défaut
    De quelle table vient zozo?
    Pourquoi ne pas utiliser DECODE?
    On ne peut pas utiliser d'alias dans une clause WHERE.

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    En effet, l'alias ne peut pas être utiliser dans la requête, tu peux contourner cette limitation via une vue, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT * FROM 
      (SELECT CASE
      WHEN zozo = 'NA' THEN 'Val1'
      ELSE 'Val2'  END AS myalias
      FROM  Table2)
    WHERE Table1.ID=Table2.ID 
    AND Table1.ID = myalias;

  4. #4
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Il manque surtout un END non ?? Et Table1 dans ta solution orafrance non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM 
      (SELECT (CASE 
      WHEN zozo = 'NA' THEN 'Val1' 
      ELSE 'Val2' 
      END) AS myalias 
      FROM  Table2) T2, Table1 
    WHERE Table1.ID=T2.ID 
    AND Table1.ID = T2.myalias;

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    le code n'est pas un copier-coller, j'ai reécrit le script juste pour faire comprendre ce que je chercher a faire.
    Je pense que l'idée de la vue et le bon contournement, je voulais juste en etre sur. Merci nuke_y

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    le code n'est pas un copier-coller, j'ai reécrit le script juste pour faire comprendre ce que je chercher a faire.
    Je pense que l'idée de la vue et le bon contournement, je voulais juste en etre sur. Merci orafrance

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

Discussions similaires

  1. Utilisation des alias dans la clause WHERE d'une requête SELECT
    Par OursRêveur dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 13/07/2013, 04h34
  2. Utiliser un alias dans une condition.
    Par piscou51000 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2009, 19h49
  3. [MySQL] Utilisation des alias dans une requête
    Par methodman225 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/09/2008, 12h55
  4. [Oracle] utilisation des alias dans le where
    Par seddik_saber dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/09/2007, 11h18
  5. [SQL2K][TSQL] Peut-on utiliser un alias dans une clause Where ?
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/05/2006, 09h25

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