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 :

Ordre de traitement des opérateurs sur un select


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut Ordre de traitement des opérateurs sur un select
    Bonjour,

    je suis tombé sur la requete suivante en reprenant du code en PL/SQL sous ORACLE 10 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT	NVL(SUM(ABS(MaColonne)),0)
    FROM MaTable
    WHERE Condition 1
    Sachant que le type de la colonne MaColonne est NUMBER.

    Il m'a semblé alors que ce serait plus juste d'écrire la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT	SUM(ABS(NVL(MaColonne, 0)))
    FROM MaTable
    WHERE Condition 1
    Or, la première requête marche bien alors que la seconde renvoie systématiquement NULL

    Sachant qu'après reflexion je me suis rendu que dans la table MaTable, il n'y a aucune valeur de MaColonne à NULL, je suis perplexe

    Quelqu'un pourrait il m'expliquer l'erreur de mon raisonnement SVP ???

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 138
    Par défaut
    Ton raisonnement me semble parfaitement correct.
    Sans doute l'une des spécificités de Oracle pour ne pas coller au standard
    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.

Discussions similaires

  1. Demande un Logiciel de traitement des graphes sur linux
    Par razouk dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 09/05/2006, 21h45
  2. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 21h03
  3. Réponses: 11
    Dernier message: 13/04/2006, 16h18
  4. [D7]Ordre de traitement des commandes
    Par PBSDev dans le forum Langage
    Réponses: 1
    Dernier message: 06/02/2006, 16h05
  5. [XSL] ordre de traitement des apply-templates
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 24/01/2006, 12h19

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