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

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

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

expression | expression

Аргументы

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

    ms186714.note(ru-ru,SQL.90).gifПримечание.
    В побитовой операции только один из аргументов expression может иметь тип binary или varbinary.

Замечания

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

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

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

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

Примеры

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

USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
      WHERE TABLE_NAME = 'bitwise')
   DROP TABLE bitwise;
GO
CREATE TABLE bitwise
( 
 a_int_value int NOT NULL,
b_int_value int NOT NULL
);
GO
INSERT bitwise VALUES (170, 75);
GO

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

USE tempdb;
GO
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)

Другие ресурсы

Битовые операторы (ядро СУБД)

Справка и поддержка

Получение помощи по SQL Server 2005