Categorias:

Funções de expressões bit a bit

BITAND

Retorna AND bit a bit de duas expressões numéricas.

Aliases:

BIT_AND

Consulte também:

BITAND_AGG

Sintaxe

BITAND( <expr1> , <expr2> )
Copy

Argumentos

expr1

Esta expressão deve ser avaliada como um tipo de dados que pode ser convertido em INTEGER.

expr2

Esta expressão deve ser avaliada como um tipo de dados que pode ser convertido em INTEGER.

Retornos

Retorna um número inteiro que representa o AND bit a bit das expressões de entrada.

Notas de uso

  • Se o tipo de dados de qualquer argumento for numérico mas não INTEGER (por exemplo, FLOAT, DECIMAL etc.), então o argumento será convertido em INTEGER.

  • Se o tipo de dados de qualquer um dos argumentos for uma cadeia de caracteres (por exemplo, VARCHAR), então o argumento será convertido em INTEGER se possível. Por exemplo, a cadeia de caracteres ‘12,3’ será convertida em 12. Se o valor não puder ser convertido em INTEGER, então o valor será tratado como NULL.

  • Se um dos valores for NULL, o resultado será NULL.

Exemplos

Este exemplo mostra como usar BITAND(), BITOR() e BITXOR():

Criar uma tabela e dados simples:

CREATE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);
Copy
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
    ;
Copy

Executar a consulta:

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

Saída:

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