Catégories :

Fonctions d’expression au niveau du bit

BITAND

Renvoie AND au niveau du bit pour deux expressions numériques.

Alias :

BIT_AND

Voir aussi :

BITAND_AGG

Syntaxe

BITAND( <expr1> , <expr2> )

Arguments

expr1

Cette expression doit correspondre à un type de données pouvant être converti en INTEGER.

expr2

Cette expression doit correspondre à un type de données pouvant être converti en INTEGER.

Renvoie

Renvoie un entier qui représente le bitwise AND des expressions d’entrée.

Notes sur l’utilisation

  • Si le type de données de l’un ou l’autre argument est numérique mais pas INTEGER (par exemple, FLOAT, DECIMAL, etc.), l’argument sera alors converti en INTEGER.

  • Si le type de données de l’un des arguments est une chaîne (par exemple, VARCHAR), l’argument sera converti en INTEGER si possible. Par exemple, la chaîne « 12,3 » sera convertie en 12. Si la valeur ne peut pas être convertie en INTEGER, elle sera traitée comme NULL.

  • Si l’une des valeurs est NULL, le résultat est NULL.

Exemples

Cet exemple montre comment utiliser BITAND(), BITOR() et BITXOR() :

Créez une table et des données simples :

CREATE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);
INSERT INTO bits (ID, bit1, bit2) VALUES 
    (   11,    1,     1),    -- Bits are all the same.
    (   24,    2,     4),    -- Bits are all different.
    (   42,    4,     2),    -- Bits are all different.
    ( 1624,   16,    24),    -- Bits overlap.
    (65504,    0, 65504),    -- Lots of bits (all but the low 6 bits)
    (    0, NULL,  NULL)     -- No bits
    ;

Exécutez la requête :

SELECT bit1, bit2, BITAND(bit1, bit2), BITOR(bit1, bit2), BITXOR(bit1, BIT2)
  FROM bits;

Sortie :

+------+-------+--------------------+-------------------+--------------------+
| BIT1 |  BIT2 | BITAND(BIT1, BIT2) | BITOR(BIT1, BIT2) | BITXOR(BIT1, BIT2) |
|------+-------+--------------------+-------------------+--------------------|
|    1 |     1 |                  1 |                 1 |                  0 |
|    2 |     4 |                  0 |                 6 |                  6 |
|    4 |     2 |                  0 |                 6 |                  6 |
|   16 |    24 |                 16 |                24 |                  8 |
|    0 | 65504 |                  0 |             65504 |              65504 |
| NULL |  NULL |               NULL |              NULL |               NULL |
+------+-------+--------------------+-------------------+--------------------+