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

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

Выполняет побитовую логическую OR операцию между двумя целыми значениями.

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

Syntax

expression | expression

Arguments

expression

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

Note

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

Типы возвращаемых данных

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

Remarks

Побитовый | оператор выполняет побитовую логику OR между двумя выражениями, принимая каждый соответствующий бит для обоих выражений. Биты в результирующем наборе задаются 1 , если в выражениях ввода имеется значение 1либо оба бита (для текущего бита, разрешаемого). Если ни в входных выражениях 1нет, то бит в результирующем значении имеет 0значение .

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

Examples

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

CREATE TABLE bitwise
(
    a_int_value INT NOT NULL,
    b_int_value INT NOT NULL
);
GO

INSERT bitwise
VALUES (170, 75);
GO

Следующий запрос выполняет побитовую операцию OR по столбцам и b_int_value столбцамa_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