SQL Engine Reference (v11)

ビット演算 AND(&)

ビット演算子 AND は、2 つのオペランド間でビットごとに論理積演算を実行します。

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

構文

&

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

戻り値

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

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

& 演算子を IF 関数と組み合わせて使用し、テーブルがシステム テーブルかユーザー定義のテーブルかを調べることができます。

select Xf$Name, IF(Xf$Flags & 16 = 16, 'System table', 'User table') from X$File 

このステートメントを Demodata サンプル データベースに対して実行すると、次の結果が返されます。

		X$File              	System table 
		X$Field             	System table 
		X$Index             	System table 
		Billing             	User table 
		Class               	User table 
		Room                	User table 
		Student             	User table 
		Tuition             	User table 
		Course              	User table 
		Department          	User table 
		Enrolls             	User table 
		Faculty             	User table 
		Person              	User table 
		X$Proc              	System table 

概要

ビット演算 NOT(~)