Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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.
Примеры
В следующем примере целочисленное значение 12345 сдвигается вправо на 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 |