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

SQL Oracle Discussion :

BITAND qui "BITAND pas" ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Indépendant spécialiste Cognos/Essbase
    Inscrit en
    Août 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Indépendant spécialiste Cognos/Essbase
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 384
    Par défaut BITAND qui "BITAND pas" ?
    Bonjour,

    j'utilise cette fonction de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    decode(BITAND(CERDGE,1),1,1,0) as REG01, 
    decode(BITAND(CERDGE,10),10,1,0) as REG02, 
    decode(BITAND(CERDGE,100),100,1,0) as REG03,
    L'objectif : si j'ai un CERDGE = 110 je sais que les règles 02 et 03 ont été violées. Si j'ai 100, seule la règle 03 à été violée.

    Sauf que dans les faits, cela fonctionne pour un CERDGE = 100 mais pour toutes combinaisons de plusieurs règles, cela ne marche pas.

    Est-ce que quelqu'un pourrait me tuyauter où l'erreur se situe ?

    Merci d'avance

    Mederik

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut Il y a 10 types de gens dans le monde. Ceux qui parlent le binaire, et les autres.
    BITAND, ca fonctionne avec des nombres binaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TMP@minilhc >select bitand(104,100) from dual;
     
    BITAND(104,100)
    ---------------
                 96
     
    TMP@minilhc >select bitand(103,100) from dual;
     
    BITAND(103,100)
    ---------------
                100
    Au lieu de prendre 1,10 et 100, vous devez utiliser 1,2,4. Des nombres ninaires en somme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TMP@minilhc >select bitand(6,1) as lsb ,bitand(6,2) as BIT, bitand(6,4) as msb from dual;
     
           LSB        BIT        MSB
    ---------- ---------- ----------
             0          2          4

  3. #3
    Membre éclairé
    Homme Profil pro
    Indépendant spécialiste Cognos/Essbase
    Inscrit en
    Août 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Indépendant spécialiste Cognos/Essbase
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 384
    Par défaut
    Arf...
    vu sous cet angle effectivement...
    Bon merci pour l'info, j'adapte.


    Mederik

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

Discussions similaires

  1. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54

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