適用対象: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 つの整数値間でビットごとの論理排他的 OR 演算を実行します。
Syntax
expression ^ expression
Arguments
expression
整数データ型カテゴリのいずれかのデータ型、ビット、バイナリまたは varbinary データ型のいずれかの有効な式。 式は、ビットごとの演算に対して 2 進数として扱われます。
Note
ビットごとの演算では、1 つの式のみが binary または varbinary データ型のいずれかになります。
戻り値の型
入力値が int の場合は int です。
入力値が smallint の場合は smallint です。
入力値が tinyint の場合は tinyint です。
Remarks
^ビットごとの演算子は、2 つの式の間でビットごとの論理排他的ORを実行し、両方の式に対応する各ビットを受け取ります。 入力式の (解決される現在のビットの) ビットのいずれかが1の値を持っている場合、結果のビットは1に設定されます。 両方のビットが 0 の場合、または両方のビットが 1されている場合、結果のビットは 0の値にクリアされます。
左側の式と右側の式が異なる整数型の場合 (たとえば、左側の式が smallint 型で、右側の式が int 型の場合)、小さいデータ型の引数が大きいデータ型の引数に変換されます。 この場合、smallint "式" は int に変換されます。
Examples
次の例では、int データ型を使用して元の値を格納するテーブルを作成し、1 行に 2 つの値を挿入します。
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列に対してビットごとの排他的ORを実行します。
SELECT a_int_value ^ b_int_value
FROM bitwise;
GO
結果セットは次のとおりです。
-----------
225
170 (a_int_value または A) をバイナリで表すと、0000 0000 1010 1010 になります。 75 (b_int_value または B) をバイナリで表すと、0000 0000 0100 1011 になります。 これら 2 つの値に対してビットごとの排他的 OR 演算を実行すると、バイナリ結果 0000 0000 1110 0001が生成されます。これは 10 進数の 225 です。
(A ^ B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 0001