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
LEFT_SHIFT przyjmuje dwa parametry i zwraca pierwszy parametr przesunięty o bity o liczbę bitów podaną w drugim parametrze.
Funkcja LEFT_SHIFT jest również dostępna przez operatora << .
Transact-SQL konwencje składni
Składnia
LEFT_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
LEFT_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 LEFT_SHIFT funkcji nie jest obecnie obsługiwana w Microsoft Fabric.
Przykłady
W poniższym przykładzie wartość całkowita 12345 jest przesunięta w lewo o 5 bitów.
SELECT LEFT_SHIFT(12345, 5);
Wynik to 395040. Jeśli przekształcisz 12345 na binarny, otrzymasz 0011 0000 0011 1001. Przesunięcie tego o 5 w lewo staje się , 0110 0000 0111 0010 0000co jest dziesiętnym 395040 .
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 |
| 24690 | 0110 0000 0111 0010 |
Przesunięcie w lewo o 1 |
| 49380 | 1100 0000 1110 0100 |
Przesuń się w lewo o 2 |
| 98760 | 0001 1000 0001 1100 1000 |
Przesuń się w lewo o 3, i otwiera się do nowego bajtu |
| 197520 | 0011 0000 0011 1001 0000 |
Przesuń się w lewo o 4 |
| 395040 | 0110 0000 0111 0010 0000 |
Przesuń się w lewo o 5 |