Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed
Instance SQL Analytics endpoint em Microsoft Fabric
Warehouse em Microsoft Fabric Database
SQL em Microsoft Fabric
LEFT_SHIFT usa dois parâmetros e retorna o primeiro parâmetro deslocado para a esquerda pelo número de bits especificado no segundo parâmetro.
A LEFT_SHIFT função também é acessível por meio do << operador.
Convenções de sintaxe de Transact-SQL
Sintaxe
LEFT_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 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 é maior que o número de bits em expression_value, o resultado retornado é 0.
LEFT_SHIFT executa uma mudança lógica. Depois que os bits são deslocados, todos os cargos vagos são preenchidos, 0independentemente de o valor original ser positivo ou negativo.
Comentários
Na implementação inicial, não há suporte para a funcionalidade de Consulta Distribuída para as funções de manipulação de bits no servidor vinculado ou consultas ad hoc (OPENQUERY).
No << momento, não há suporte para o método para a LEFT_SHIFT função no Microsoft Fabric.
Exemplos
No exemplo a seguir, o valor inteiro 12.345 é deslocado para a esquerda por 5 bits.
SELECT LEFT_SHIFT(12345, 5);
O resultado é 395.040. Se você converter 12.345 em binário, terá 0011 0000 0011 1001. Mudar esse valor para a esquerda em 5 bits torna-se 0110 0000 0111 0010 0000, que está 395040 em decimal.
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 |
24690 |
0110 0000 0111 0010 |
Desloque para a esquerda por 1 |
49380 |
1100 0000 1110 0100 |
Desloque para a esquerda por 2 |
98760 |
0001 1000 0001 1100 1000 |
Deslocar para a esquerda por 3 e abrir em um novo byte |
197520 |
0011 0000 0011 1001 0000 |
Desloque para a esquerda por 4 |
395040 |
0110 0000 0111 0010 0000 |
Desloque para a esquerda por 5 |