Condividi tramite


RIGHT_SHIFT (Transact SQL)

Si applica a: SQL Server 2022 (16.x) database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

RIGHT_SHIFT accetta due parametri e restituisce il primo parametro spostato a destra del numero di bit specificato nel secondo parametro.

La funzione RIGHT_SHIFT è accessibile anche tramite l'operatore >>.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount

Argomenti

expression_value

Qualsiasi espressione integer o binaria diversa da un Large Object (LOB).

shift_amount

Numero di bit di cui deve essere spostato il valore expression_value. shift_amount deve essere un tipo integer.

Tipi restituiti

Restituisce lo stesso tipo di expression_value.

Viene eseguito il casting del parametro shift_amount in un bigint. Il parametro può essere positivo o negativo e può anche essere maggiore del numero di bit del tipo di dati relativo a expression_value. Se shift_amount è negativo, lo spostamento viene eseguito in direzione opposta. Ad esempio, LEFT_SHIFT (expr, -1) è identico a RIGHT_SHIFT (expr, 1). Se shift_amount è maggiore del numero di bit in expression_value, il risultato restituito sarà 0.

RIGHT_SHIFT esegue uno spostamento logico. Dopo aver spostato i bit, tutte le posizioni vacanti verranno riempite da 0, indipendentemente dal fatto che il valore originale fosse positivo o negativo.

Osservazioni:

Nell'implementazione iniziale, non è supportata la funzionalità Query distribuita per le funzioni di manipolazione dei bit all'interno di un server collegato o di query ad hoc (OPENQUERY).

Il >> metodo per la RIGHT_SHIFT funzione non è attualmente supportato in Microsoft Fabric.

Esempi

Nell'esempio seguente il valore intero 12345 viene spostato a destra di 5 bit.

SELECT RIGHT_SHIFT(12345, 5);

Il risultato è 385. Se si converte 12345 in un valore binario, il risultato sarà 0011 0000 0011 1001. Spostando questo valore a destra di 5 bit, si otterrà 0001 1000 0001, che corrisponde a 385 in valori decimali.

La tabella seguente illustra cosa accade ad ogni spostamento.

Valore intero Valore binario Descrizione
12345 0011 0000 0011 1001 Valore iniziale
6172 0001 1000 0001 1100 Spostamento a destra di 1 bit
3086 0000 1100 0000 1110 Spostamento a destra di 2 bit
1543 0000 0110 0000 0111 Spostamento a destra di 3 bit
771 0000 0011 0000 0011 Spostamento a destra di 4 bit
385 0000 0001 1000 0001 Spostamento a destra di 5 bit

Vedi anche