適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
ビットごとの演算子は、整数型に分類されるデータ型を持つ 2 つの式に対してビット操作を実行します。
ビットごとの演算子は 2 つの整数値をバイナリ ビットに変換し、各ビットに対して AND、OR、または NOT 演算を実行して結果を生成します。 次にその結果を整数に変換します。
たとえば、整数 170 はバイナリの 1010 1010 に変換されます。
整数 75 はバイナリの 0100 1011 に変換されます。
| Operator | ビット数学 |
|---|---|
|
AND 任意の位置にあるビットが両方とも 1 の場合、結果は 1 になります。 |
1010 1010 = 1700100 1011 = 75----------------- 0000 1010 = 10 |
|
OR 任意の位置にあるビットのいずれかが 1 の場合、結果は 1 になります。 |
1010 1010 = 1700100 1011 = 75----------------- 1110 1011 = 235 |
|
NOT すべてのビット位置にあるビットの値を反転させます。 |
1010 1010 = 170----------------- 0101 0101 = 85 |
次の記事では、データベース エンジンで使用できるビット演算子の詳細が説明されています。
- & (ビット演算 AND)
- &= (ビット演算 AND 代入)
- | (ビットごとの OR)
- |= (ビットごとの OR 代入)
- ^ (ビットごとの排他的 OR)
- ^= (ビットごとの排他的 OR 代入)
- ~ (ビット演算子 NOT)
SQL Server 2022 (16.x) では、次のビット演算子が導入されました。
ビットごとの演算子のオペランドは、整数または image 型を除くバイナリ文字列型に分類されるデータ型です。ただし、両方のオペランドがバイナリ文字列型に分類されるデータ型であってはなりません。 次の表に、サポートされているオペランドのデータ型を示します。
| 左オペランド | 右オペランド |
|---|---|
| binary | int、smallint、または tinyint |
| bit | int、smallint、tinyint、または bit |
| bigint | bigint、int、smallint、tinyint、binary、または varbinary |
| int | int、smallint、tinyint、binary、または varbinary |
| smallint | int、smallint、tinyint、binary、または varbinary |
| tinyint | int、smallint、tinyint、binary、または varbinary |
| varbinary | int、smallint、または tinyint |