Побитовые операторы (Transact-SQL)

Область применения: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Analytics Platform System (PDW)

Побитовые операторы выполняют побитовые действия над двумя выражениями с любым типом данных, относящимся к категории типа данных integer.

Побитовые операторы преобразуют два целочисленных значения в двоичные биты, выполняют ANDоперацию , ORили NOT для каждого бита, создавая результат. Затем результат преобразуется в целое число.

Например, целое число 170 преобразуется в двоичный 1010 1010.

Целое число 75 преобразуется в двоичное 0100 1011значение .

Оператор Побитовая математика
AND

Если биты в любой позиции являются обоими 1, результатом будет 1.
1010 1010 = 170
0100 1011 = 75
-----------------
0000 1010 = 10
OR

Если любой бит в любой позиции равен 1, результатом будет 1.
1010 1010 = 170
0100 1011 = 75
-----------------
1110 1011 = 235
NOT

Меняет значение бита в обратном направлении в каждой позиции бита.
1010 1010 = 170
-----------------
0101 0101 = 85

В следующих статьях содержатся дополнительные сведения о побитовых операторах, доступных в компоненте Компонент Database Engine.

В SQL Server 2022 г. (16.x) появились следующие побитовые операторы:

Операнды для побитовых операторов могут быть любым из типов данных категорий типа данных integer или binary string (за исключением типа данных image ), за исключением того, что оба операнда не могут быть ни одним из типов данных категории типов данных двоичной строки. Следующая таблица показывает поддерживаемые типы данных операндов.

Левый операнд Правый операнд
binary int, smallint или tinyint
bit int, smallint, tinyint или bit
bigint bigint, int, smallint, tinyint, binary или varbinary
int int, smallint, tinyint, binary или varbinary
smallint int, smallint, tinyint, binary или varbinary
tinyint int, smallint, tinyint, binary или varbinary
varbinary int, smallint или tinyint

См. также раздел