- Categorias:
BITSHIFTRIGHT¶
Move os bits para uma expressão numérica n
posições para a direita.
- Aliases:
BIT_SHIFTRIGHT
- Consulte também:
Sintaxe¶
BITSHIFTRIGHT( <expr1> , <n> )
Argumentos¶
expr1
Esta expressão deve ser avaliada como um tipo de dados que pode ser convertido em
INTEGER
.n
O número de bits a serem movidos.
Notas de uso¶
Se o tipo de dados do argumento for numérico mas não
INTEGER
(por exemplo, FLOAT, DECIMAL etc.), então o argumento será convertido emINTEGER
.Se o tipo de dados do argumento for uma cadeia de caracteres (por exemplo,
VARCHAR
), então o argumento será convertido emINTEGER
se possível. Por exemplo, a cadeia de caracteres ‘12,3’ será convertida em 12. Se o valor não puder ser convertido emINTEGER
, então o valor será tratado como NULL.Se o argumento for NULL, o resultado será NULL.
Exemplos¶
Este exemplo mostra como usar BITSHIFTLEFT
e BITSHIFTRIGHT
:
Criar uma tabela e dados 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 ;Executar a consulta:
SELECT bit1, bit2, BITSHIFTLEFT(bit1, 1), BITSHIFTRIGHT(bit2, 1) FROM bits ORDER BY bit1;Saída:
+------+-------+-----------------------+------------------------+ | BIT1 | BIT2 | BITSHIFTLEFT(BIT1, 1) | BITSHIFTRIGHT(BIT2, 1) | |------+-------+-----------------------+------------------------| | 0 | 65504 | 0 | 32752 | | 1 | 1 | 2 | 0 | | 2 | 4 | 4 | 2 | | 4 | 2 | 8 | 1 | | 16 | 24 | 32 | 12 | | NULL | NULL | NULL | NULL | +------+-------+-----------------------+------------------------+