Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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 принимает два параметра и возвращает первый бит смещенный влево число битов, указанных во втором параметре.
Эта LEFT_SHIFT функция также доступна через << оператор.
Соглашения о синтаксисе Transact-SQL
Синтаксис
LEFT_SHIFT ( expression_value , shift_amount )
expression_value << shift_amount
Аргументы
expression_value
Любое целочисленное или двоичное выражение, которое не является большим объектом (LOB).
shift_amount
Количество битов, на которое следует сдвинуть expression_value. Параметр shift_amount должен быть целочисленным типом.
Типы возвращаемых данных
Возвращает тип, совпадающий с типом выражения expression_value.
Параметр shift_amount приведен к bigint. Параметр может быть положительным или отрицательным, а также может быть больше числа битов в типе данных expression_value. Если параметр shift_amount имеет отрицательное значение, сдвиг выполняется в противоположном направлении. Например, LEFT_SHIFT (expr, -1) — это тоже самое, что и RIGHT_SHIFT (expr, 1). Если shift_amount больше количества битов в expression_value, возвращается 0результат.
LEFT_SHIFT выполняет логический сдвиг. После смены битов все вакантные должности заполняются 0независимо от того, было ли исходное значение положительным или отрицательным.
Замечания
В первоначальной реализации функции распределенного запроса для функций обработки битов в связанном сервере или нерегламентированных запросах (OPENQUERY) не поддерживаются.
Метод << функции LEFT_SHIFT в настоящее время не поддерживается в Microsoft Fabric.
Примеры
В следующем примере целочисленное значение 12,345 слева сдвигается на 5 битов.
SELECT LEFT_SHIFT(12345, 5);
Результат — 395 040. Если вы преобразуете 12345 в двоичный файл, у вас есть 0011 0000 0011 1001. Сдвиг этого значения влево на 5 битов становится 0110 0000 0111 0010 0000, который находится 395040 в десятичном разряде.
В следующей таблице показано, что происходит во время каждого сдвига.
| Целое значение | Двоичное значение | Description |
|---|---|---|
12345 |
0011 0000 0011 1001 |
Начальное значение |
24690 |
0110 0000 0111 0010 |
Сдвиг влево на 1 |
49380 |
1100 0000 1110 0100 |
Сдвиг влево на 2 |
98760 |
0001 1000 0001 1100 1000 |
Сдвиг влево на 3 и открытие в новый байт |
197520 |
0011 0000 0011 1001 0000 |
Сдвиг влево на 4 |
395040 |
0110 0000 0111 0010 0000 |
Сдвиг влево на 5 |