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 :

Question sur un SELECT...... AS....


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Question sur un SELECT...... AS....
    Bonjour,

    Je vous pose directement la question parce que mes recherches sur le mot-clé "AS" ne rendent pas grand chose

    Ca n'est pas possible de faire un SELECT toto AS titi, titi - 1 as tutu from .... ? (en résumé, d'utiliser le AS qu'on a fait en premier dans le select pour faire un calcul dans la deuxième partie du select ? (Cf titi))

    J'ai une erreur titi : invalid column name

    Si ça n'est pas possible comme ça, il y a une autre possibilité ?

    Je précise que je tape sur une base Oracle.

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 273
    Points : 1 280
    Points
    1 280
    Par défaut
    sous sql serveur si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT     Xdock_ID AS toto, Xdock_ID - 1 AS tutu
    FROM         Tbl_Xdock
    faut pas utiliser l'alias, je pense que ca fonctionne aussi sous oracle
    j'suis vert !

  3. #3
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Pote dans la bonne categorie, on t'aurai repondu plus vite... Il ne faut pas utiliser le mot clef as dans ce type de requete sous oracle, mais directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT     Xdock_ID toto, 
                    (Xdock_ID - 1) tutu 
    FROM         Tbl_Xdock
    les parentheses ne sont la que pour des raisons de lisibilite.

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je ne crois pas que vous ayez saisi mon problème (ou alors je n'ai pas compris vos réponses, ce qui est possible).

    Dans ma requête, je cherche à utiliser la variable que j'ai sélectionné en premier pour faire un calcul dans la deuxième partie du select.

    Je vous donne un autre exemple en otant les titi, toto et tutu qui obscurcissent le premier :
    SELECT nb_jour AS duree, duree - 1 AS preavis

  5. #5
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Tu est clair comme du jus de chiques, mais on va supposer que j'ai compris, la reponse est non, tu dois repeter ton expression dans ta clause where :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select col1||'_toto' colonne_calculee
    from table
    where colonne_calculee = 'toto_toto'
    ne fonctionne pas, il faut ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select col1||'_toto' colonne_calculee
    from table
    where col1||'_toto' = 'toto_toto'
    je sais, l'exemple est con, mais tu devrai comprendre le principe si on parle de la meme chose...

  6. #6
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 273
    Points : 1 280
    Points
    1 280
    Par défaut
    select nbr_jour as duree, nbr_jour - 1 as preavis

    ou

    select nbre_jour, nbr_jour - 1 as preavis


    t'as pas besoin de ton alias pour le premier champ en fait

    avec ces requetes si tu as 1,6,3 en nbr_jour tu aura 0,5,2 en préavis
    j'suis vert !

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est quand même bien embêtant parce que ma première expression est vraiment très importante (une dizaine de DECODE imbriqués). Et je vous explique pas pour la maintenance...
    Il n'y aurait pas une autre solution ?

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Laissez tomber, j'ai trouvé, il suffit que j'imbrique différemment mes select.
    Bonjour la requête.

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par geant63 Voir le message
    Bonjour,

    Je vous pose directement la question parce que mes recherches sur le mot-clé "AS" ne rendent pas grand chose

    Ca n'est pas possible de faire un SELECT toto AS titi, titi - 1 as tutu from .... ? (en résumé, d'utiliser le AS qu'on a fait en premier dans le select pour faire un calcul dans la deuxième partie du select ? (Cf titi))

    J'ai une erreur titi : invalid column name

    Si ça n'est pas possible comme ça, il y a une autre possibilité ?

    Je précise que je tape sur une base Oracle.

    Je sais je vais repondre à un post vieux de 4 ans

    Mais on ne sait jamais, cela peut toujours servir.


    Pour faire cela il faut passer par un double select :

    select titi, titi -1 as tutu from ( select toto as titi from bidon)

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

Discussions similaires

  1. Question sur le Select
    Par Iria77 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/07/2007, 14h14
  2. [MySQL] Question sur le SELECT
    Par picsoun dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 17/03/2006, 15h10
  3. select sur plusieurs table, question sur jointure
    Par Schulman dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/09/2004, 13h54
  4. question sur SELECT ...WHERE...IN
    Par danseur dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/01/2004, 15h23

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