Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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 принимает два параметра и возвращает первый бит смещенный вправо по количеству битов, указанных во втором параметре.
Эта RIGHT_SHIFT функция также доступна через >> оператор.
Соглашения о синтаксисе Transact-SQL
Синтаксис
RIGHT_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результат.
RIGHT_SHIFT выполняет логический сдвиг. После смены битов все вакантные должности заполняются 0независимо от того, было ли исходное значение положительным или отрицательным.
Замечания
В первоначальной реализации функции распределенного запроса для функций обработки битов в связанном сервере или нерегламентированных запросах (OPENQUERY) не поддерживаются.
Метод >> функции RIGHT_SHIFT в настоящее время не поддерживается в Microsoft Fabric.
Примеры
В следующем примере целочисленное значение 12,345 смещено вправо на 5 битов.
SELECT RIGHT_SHIFT(12345, 5);
Результатом будет 385. Если вы преобразуете 12345 в двоичный файл, у вас есть 0011 0000 0011 1001. Сдвиг этого значения вправо на 5 битов становится 0001 1000 0001, который находится 385 в десятичном разряде.
В следующей таблице показано, что происходит во время каждого сдвига.
| Целое значение | Двоичное значение | Description |
|---|---|---|
12345 |
0011 0000 0011 1001 |
Начальное значение |
6172 |
0001 1000 0001 1100 |
Сдвиг вправо на 1 |
3086 |
0000 1100 0000 1110 |
Сдвиг вправо на 2 |
1543 |
0000 0110 0000 0111 |
Сдвиг вправо на 3 |
771 |
0000 0011 0000 0011 |
Сдвиг вправо на 4 |
385 |
0000 0001 1000 0001 |
Сдвиг вправо на 5 |