Categorias:

Funções de expressões bit a bit

BITXOR

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

Aliases:

BIT_XOR

Consulte também:

BITXOR_AGG

Sintaxe

BITXOR( <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 XOR bit a bit das expressões de entrada.

Notas de uso

  • Se o tipo de dados de qualquer um dos argumentos 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’ é 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