Функции поразрядной операции
Область применения: SQL Server 2022 (16.x) База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL в хранилище Microsoft Fabric в Microsoft Fabric
Функции поразрядной операции, такие как перемещение, извлечение (получение), установка или подсчет отдельных битов в целочисленном или двоичном значении, позволяют обрабатывать и хранить данные более эффективно, чем с отдельными битами.
Бит имеет два значения (1
или 0
, которые представляют on
, off
, true
или false
). Байт состоит из последовательности 8 битов. Функции поразрядной операции в SQL Server рассматривают "крайний левый" бит в байте как самый большой (самый значительный). Для функций поразрядной операции биты нумеруются справа налево, при этом бит 0
является крайним правым и наименьшим, а бит 7
— крайним левым и наибольшим.
Например, двоичная последовательность 00000111
является десятичным эквивалентом числа 7
. Вы можете вычислить это с помощью полномочий 2 следующим образом:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
На практике это означает, что в то время как SQL Server сохраняет это значение как 11100000
(с обратными байтами), функции поразрядной операции будут рассматривать это как 00000111
.
При просмотре нескольких байтов первый байт (чтение слева направо) является самым большим.
Указанные ниже изображения можно использовать для визуализации того, как функции поразрядной операции SQL Server интерпретируют значения битовых и байтовых выражений и смещения битов.
int
smallint
Функции
Имеется пять функций, доступных для управления битами в SQL Server:
Все пять функций предназначены для работы с типами данных tinyint, smallint, int, bigint, binary(n) и varbinary(n).
Следующие типы не поддерживаются: varchar, nvarchar, image, ntext, text, xml и table.
Замечания
В начальной реализации функциональность распределенных запросов для функций поразрядных операций на связанном сервере или в специальных запросах (OPENQUERY) не будет поддерживаться.