Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к: 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 |