ビットごとの演算子 (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

ビットごとの演算子は、整数型に分類されるデータ型を持つ 2 つの式に対してビット操作を実行します。

ビットごとの演算子は 2 つの整数値をバイナリ ビットに変換し、各ビットに対して ANDOR、または 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

次の記事では、データベース エンジンで使用できるビット演算子の詳細が説明されています。

SQL Server 2022 (16.x) では、次のビット演算子が導入されました。

ビットごとの演算子のオペランドは、整数または image 型を除くバイナリ文字列型に分類されるデータ型です。ただし、両方のオペランドがバイナリ文字列型に分類されるデータ型であってはなりません。 次の表に、サポートされているオペランドのデータ型を示します。

左オペランド 右オペランド
[バイナリ] intsmallint、または tinyint
bit intsmallinttinyint、または bit
bigint bigintintsmallinttinyintbinary、または varbinary
int intsmallinttinyintbinary、または varbinary
smallint intsmallinttinyintbinary、または varbinary
tinyint intsmallinttinyintbinary、または varbinary
varbinary intsmallint、または tinyint

関連項目