| (ビット演算子 OR) (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric のSQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Transact-SQL ステートメントの中で、バイナリ式に変換された 2 つの指定される整数値に対して、ビットごとの論理和演算を実行します。
構文
expression | expression
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
式 (expression)
整数データ型に分類されるデータ型、または bit、または binary または varbinary データ型の有効な式を指定します。 式は、ビットごとの演算に対して 2 進数として扱われます。
Note
ビットごとの演算では、1 つの式のみが binary または varbinary データ型のいずれかになります。
戻り値の型
入力値が int の場合は int、入力値が smallint の場合は smallint、入力値が tinyint の場合は tinyint を返します。
解説
ビットごとの | 演算子は、2 つの式の対応するビットを対象にビットごとの論理和演算を実行します。 入力式の中で現在処理の対象にあるビットについて、いずれかのビットまたは両方のビットが 1 の値を持つ場合、結果セットのビットは 1 に設定されます。入力式のビットが両方とも 1 の値を持たない場合、結果セットのビットは 0 に設定されます。
左側の式と右側の式が異なる整数型の場合 (たとえば、左側の式が smallint 型で、右側の式が int 型の場合)、小さいデータ型の引数が大きいデータ型の引数に変換されます。 この例では、smallintexpression は int に変換されます。
例
この例では、元の値を示すために int データ型を使用するテーブルを作成し、このテーブルに 1 行挿入します。
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
です。 この 2 つの値に対してビットごとの論理和演算を実行すると、結果はバイナリで 0000 0000 1110 1011
、10 進数では 235 になります。
(A | B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 1011
参照
演算子 (Transact-SQL)
ビットごとの演算子 (Transact-SQL)
|= (ビットごとの OR 代入) (Transact-SQL)
複合演算子 (Transact-SQL)