Поделиться через


| (Побитовое ИЛИ) (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в базе данных Microsoft Fabric SQL в Microsoft Fabric

Выполняет побитовую логическую операцию OR для двух указанных целочисленных значений, которые преобразуются в двоичные выражения в инструкциях Transact-SQL.

Соглашения о синтаксисе Transact-SQL

Синтаксис

expression | expression  

Аргументы

выражение
Любое допустимое выражение категории целочисленных типов данных либо типа данных bit, binary или varbinary. expression трактуется как двоичное числовое значение для выполнения побитовой операции.

Примечание.

В побитовой операции только одно выражение expression может иметь тип binary или varbinary.

Типы результата

Возвращает значение типа int, если входные значения имеют тип int, значение типа smallint, если входные значения имеют тип smallint, или значение типа tinyint, если входные значения имеют тип tinyint.

Замечания

Побитовый оператор «|» выполняет логическую операцию OR над двумя выражениями, получая из них результат поразрядно. Каждый бит результата устанавливаются в 1, если хотя бы один из исходных битов равен 1. Если оба исходных бита равны 0, бит результата будет равен нулю.

Если левое и правое выражения принадлежат к различным целочисленным типам данных (например, левое выражение expression — к типу smallint, а правое выражение expression — к типу int), аргумент более короткого типа данных преобразовывается в более длинный тип данных. В этом примере smallintexpression преобразовывается в тип int.

Примеры

В приведенном ниже примере создается таблица с двумя столбцами исходных значений типа int, а затем в ней заполняется одна строка.

CREATE TABLE bitwise (  
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);  
GO  
INSERT bitwise VALUES (170, 75);  
GO  

Следующий запрос выполняет побитовую операцию ИЛИ со столбцами a_int_value и b_int_value.

SELECT a_int_value | b_int_value  
FROM bitwise;  
GO  

Вот результирующий набор.

-----------   
235           
  
(1 row(s) affected)  

Двоичное представление числа 170 (a_int_value или A ниже) равно 0000 0000 1010 1010. Двоичное представление числа 75 (b_int_value или B ниже) равно 0000 0000 0100 1011. При выполнении побитовой операции OR над этими двумя значениями получается двоичный результат 0000 0000 1110 1011, что соответствует десятичному значению 235.

(A | B)  
0000 0000 1010 1010  
0000 0000 0100 1011  
-------------------  
0000 0000 1110 1011  

См. также

Операторы (Transact-SQL)
Побитовые операторы (Transact-SQL)
|= (битовое или назначение) (Transact-SQL)
Составные операторы (Transact-SQL)