Udostępnij za pomocą


RIGHT_SHIFT (Transact SQL)

Dotyczy do: SQL Server 2022 (16.x) Azure SQL Database AzureSQL Managed InstanceSQL Analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

RIGHT_SHIFT przyjmuje dwa parametry i zwraca pierwszy parametr przesunięty bitowo o liczbę bitów określoną w drugim parametrze.

Funkcja RIGHT_SHIFT jest również dostępna przez operatora >> .

Transact-SQL konwencje składni

Składnia

RIGHT_SHIFT ( expression_value, shift_amount )
expression_value >> shift_amount

Arguments

expression_value

Każde wyrażenie całkowitoliczbowe lub binarne, które nie jest dużym obiektem (LOB).

shift_amount

Liczba bitów, o które expression_value powinien zostać przesunięty. shift_amount musi być typu całkowitoliczbowego.

Typy zwracane

Zwraca ten sam typ co expression_value.

Parametr shift_amount jest odlewany do biminty. Parametr może być dodatni lub ujemny, a także większy niż liczba bitów w typie danych expression_value. Gdy shift_amount jest ujemna, przesunięcie działa w przeciwnym kierunku. Na przykład LEFT_SHIFT (expr, -1) jest taka sama jak RIGHT_SHIFT (expr, 1). Gdy shift_amount jest większe niż liczba bitów w expression_value, wynik zwrócony będzie .0

RIGHT_SHIFT wykonuje logiczną zmianę. Po przesunięciu bitów wszelkie wolne miejsca zostaną wypełnione przez 0, niezależnie od tego, czy pierwotna wartość była dodatnia czy ujemna.

Uwagi

W początkowej implementacji funkcjonalność Distributed Query dla funkcji manipulacji bitami w serwerze połączonym lub zapytaniach ad hoc (OPENQUERY) nie będzie obsługiwana.

Metoda >> tej RIGHT_SHIFT funkcji nie jest obecnie obsługiwana w Microsoft Fabric.

Przykłady

W następującym przykładzie wartość całkowita 12345 jest przesunięta w prawo o 5 bitów.

SELECT RIGHT_SHIFT(12345, 5);

Wynik to 385. Jeśli przekształcisz 12345 na binarny, otrzymasz 0011 0000 0011 1001. Przesunięcie tego w prawo o 5 otrzymuje 0001 1000 0001, co jest 385 dziesiętnym.

Poniższa tabela pokazuje, co dzieje się podczas każdej zmiany.

Wartość całkowita Wartość binarna Description
12345 0011 0000 0011 1001 Wartość początkowa
6172 0001 1000 0001 1100 Przesuń się w prawo o 1
3086 0000 1100 0000 1110 Przesuń się w prawo o 2
1543 0000 0110 0000 0111 Przesuń się w prawo o 3
771 0000 0011 0000 0011 Przesuń się w prawo o 4
385 0000 0001 1000 0001 Przesuń się w prawo o 5

Zobacz także

  • LEFT_SHIFT (Transact SQL)
  • SET_BIT (Transact SQL)
  • GET_BIT (Transact SQL)
  • BIT_COUNT (Transact SQL)
  • funkcje manipulowania bitami