Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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
SQL database em Microsoft Fabric
LEFT_SHIFT toma dois parâmetros e devolve o primeiro parâmetro deslocado para a esquerda pelo número de bits especificados no segundo parâmetro.
A função LEFT_SHIFT também é acessível através do << operador.
Transact-SQL convenções de sintaxe
Sintaxe
LEFT_SHIFT ( expression_value, shift_amount )
expression_value << shift_amount
Arguments
expression_value
Qualquer expressão inteira ou binária que não seja um objeto grande (LOB).
shift_amount
O número de bits pelos quais expression_value deve ser deslocado. shift_amount deve ser de um tipo inteiro.
Tipos de devolução
Devolve o mesmo tipo que expression_value.
O parâmetro shift_amount é lançado para 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 dado de expression_value. Quando shift_amount é negativo, o deslocamento ocorre na direção oposta. Por exemplo, LEFT_SHIFT (expr, -1) é o mesmo que RIGHT_SHIFT (expr, 1). Quando shift_amount for maior do que o número de bits em expression_value, o resultado devolvido será 0.
LEFT_SHIFT realiza uma mudança lógica. Depois de os bits serem deslocados, quaisquer posições vagas serão preenchidas por 0, independentemente de o valor original ser positivo ou negativo.
Observações
Na implementação inicial, a funcionalidade de Consulta Distribuída para as funções de manipulação de bits dentro do servidor ligado ou consultas ad hoc (OPENQUERY) não será suportada.
O << método para a LEFT_SHIFT função não é atualmente suportado no Microsoft Fabric.
Examples
No exemplo seguinte, o valor inteiro 12345 está deslocado para a esquerda em 5 bits.
SELECT LEFT_SHIFT(12345, 5);
O resultado é 395040. Se converter 12345 para binário, tem 0011 0000 0011 1001. Deslocar isto para a esquerda em 5 torna-se 0110 0000 0111 0010 0000, que está 395040 em decimal.
A tabela seguinte demonstra o que acontece durante cada turno.
| Valor inteiro | Valor binário | Description |
|---|---|---|
| 12345 | 0011 0000 0011 1001 |
Valor inicial |
| 24690 | 0110 0000 0111 0010 |
Desvio para a esquerda por 1 |
| 49380 | 1100 0000 1110 0100 |
Desvio para a esquerda por 2 |
| 98760 | 0001 1000 0001 1100 1000 |
Desloca-te para a esquerda em 3, e abrir para um novo byte |
| 197520 | 0011 0000 0011 1001 0000 |
Shift para a esquerda por 4 |
| 395040 | 0110 0000 0111 0010 0000 |
Desvio para a esquerda por 5 |