Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed Instance
SQL Analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL 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 |