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 :

Decode pour un if avec or dans la condition


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Re: MERCI A TOUS
    Citation Envoyé par laurentschneider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(decode(a,0,1,null,1)) from t;
    Je ne peux pas tester ici, mais je ne crois pas que ta requête fonctionne, elle doit être équivalente à SELECT COUNT(*)...
    je pense qu'il faudrait, pour suivre ton idée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(decode(a,0,1,null,1, null)) from t;
    Mais il y a aussi
    Citation Envoyé par Médiat page précédente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(DECODE(a, 0, 1, NULL, 1, 0)) 
    FROM laTable

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    non, ce n'est pas count(*), car count ne compte que les non-nuls. c'est donc strictement équivalent à ton somme. Dans certains cas le count sera plus rapide.

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    pour mémoire, decode(x,y,z) est équivalent à decode(x,y,z,null)

  4. #4
    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
    Citation Envoyé par laurentschneider
    pour mémoire, decode(x,y,z) est équivalent à decode(x,y,z,null)
    Je pensais que c'était équivalent à decode(x,y,z,x), et comme je ne peux pas tester...
    D'où ma haine ( ) des valeurs par défaut .

Discussions similaires

  1. Comment faire pour utiliser plusieurs fonctions logiques dans une condition ?
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/11/2010, 11h37
  2. Réponses: 5
    Dernier message: 05/08/2009, 17h51
  3. _attribut dans build.xml pour Fichier MANIFEST avec Ant_
    Par geeky_girl dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/11/2007, 14h31
  4. Réponses: 3
    Dernier message: 20/04/2007, 14h06
  5. Réponses: 2
    Dernier message: 29/10/2005, 20h15

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