RIGHT_SHIFT (Transact SQL)
Aplica-se a:SQL Server 2022 (16.x) Banco de Dados SQL do AzureInstância Gerenciada de SQL do AzurePonto de extremidade de análises SQL no Microsoft FabricWarehouse no Microsoft Fabric
RIGHT_SHIFT usa dois parâmetros e retorna o primeiro parâmetro com bit deslocado para a direita pelo número de bits especificado no segundo parâmetro.
A função RIGHT_SHIFT também é acessível por meio do operador >>
.
Convenções de sintaxe de Transact-SQL
Sintaxe
RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount
Argumentos
expression_value
Qualquer expressão binária ou de número inteiro que não seja um LOB (objeto grande).
shift_amount
O número de bits pelo qual expression_value deve ser deslocado. shift_amount deve ser um tipo inteiro.
Tipos de retorno
Retorna o mesmo tipo que expression_value.
O parâmetro shift_amount é convertido em um bigint. O parâmetro pode ser positivo ou negativo e também pode ser maior do que o número de bits no tipo de dados de expression_value. Quando shift_amount é negativo, a mudança opera na direção oposta. Por exemplo, LEFT_SHIFT (expr, -1)
é o mesmo que RIGHT_SHIFT (expr, 1)
. Quando shift_amount for maior que o número de bits em expression_value, o resultado retornado será 0
.
RIGHT_SHIFT executa um deslocamento lógico. Depois que os bits forem deslocados, todas as posições vagas serão preenchidas por 0
, independentemente de o valor original ser positivo ou negativo.
Comentários
Na implementação inicial, não haverá suporte para a funcionalidade de Consulta Distribuída para as funções de manipulação de bits no servidor vinculado ou em consultas ad hoc (OPENQUERY).
No momento, não há suporte do método >>
para a função RIGHT_SHIFT
no Microsoft Fabric.
Exemplos
No exemplo a seguir, o valor inteiro 12345 é deslocado para a direita em 5 bits.
SELECT RIGHT_SHIFT(12345, 5);
O resultado é 385. Se você converter 12345 em binário, terá 0011 0000 0011 1001
. Deslocar isso para a direita em 5 torna-se 0001 1000 0001
, que é 385
em decimais.
A tabela a seguir demonstra o que acontece durante cada deslocamento.
Valor inteiro | Valor binário | Descrição |
---|---|---|
12345 | 0011 0000 0011 1001 |
Valor inicial |
6172 | 0001 1000 0001 1100 |
Desloque para a direita por 1 |
3086 | 0000 1100 0000 1110 |
Desloque para a direita por 2 |
1543 | 0000 0110 0000 0111 |
Desloque para a direita por 3 |
771 | 0000 0011 0000 0011 |
Desloque para a direita por 4 |
385 | 0000 0001 1000 0001 |
Desloque para a direita por 5 |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de