SQL Engine Reference (v11)

ビット演算 排他的OR(^)

ビット演算子の排他的 OR は、2 つのオペランド間でビットごとの排他的論理和演算を実行します。

ビット演算排他的 OR は、2 つのビットを比較し、両方のビットの値が 0 または 1 の場合は、値 0 を結果に代入します。そうでない場合は、対応する結果のビットに 1 をセットします。排他的 OR 演算子は、オペランドとして数値のみを取ります。

構文

^

は INTEGER データ型を含んでいる任意の有効な式です。ビット演算のためにバイナリ数値へ変換されます。

戻り値

異なる INTEGER データ型のオペランドを伴うビット演算排他的 OR では、2 つのオペランドのうち、サイズの小さなデータ型の引数が大きなデータ型へ変換されるか、または大きい方の次に大きなデータ型へ変換されます。たとえば、smallint と integer の間で排他的 OR 演算を実行する場合、smallint 式は integer へ変換されます。

ビット演算排他的 OR にかかわるオペランドが符号付きの場合、結果の値も符号付きになります。

次の SQL クエリは、2 つの数値リテラルで排他的 OR を実行します。

SELECT 12 ^ 8 

結果は 4 です。

12(shortint とします)のバイナリ表現は 0000 0000 0000 1100 で、8 のバイナリ表現は 0000 0000 0000 1000 です。これらの数値で排他的 OR 演算を実行すると、値 4 になります。

0000 0000 0000 1100 ^ 0000 0000 0000 1000

= 0000 0000 0000 0100 (4)

666

メモ

キャレット記号(^)は、ユーザー定義名の一部として使用できません。



ビット演算 OR(|)

真理値表