INTNAND、INTNOR、INTNXOR、INTNNOT スカラー関数

これらのビット単位関数は、入力引数の整数値の「2 の補数」表現による演算を行い、対応する 10 進数の値を結果として戻します。

Read syntax diagramSkip visual syntax diagramINT2ANDINT4ANDINT8ANDINT2ORINT4ORINT8ORINT2XORINT4XORINT8XOR(expression1,expression2 )INT2NOTINT4NOTINT8NOT(expression)

スキーマは SYSIBM です。

各関数で、プレースホルダー N は、 表 2に示すように、関数が操作して返す整数データ型のバイト・サイズを表します。

表 1. ビット操作関数
関数 説明 結果の 2 の補数表現内のビットは、以下のとおりです。
INTNAND ビット単位 AND 演算を実行します。 両方の引数内の対応するビットが 1 である場合は、1 のみ。
INTNOR ビット単位 OR 演算を実行します。 両方の引数内の対応するビットがゼロでない限り、1。
INTNXOR ビット単位排他 OR 演算を実行します。 両方の引数内の対応するビットが同じでない限り、1。
INTNNOT ビット単位 NOT 演算を実行します。 引数内の対応するビットと反対のもの。
表 2. プレースホルダー Nの意味
N の値 関数で処理して戻すデータ・タイプ
2 SMALLINT
4 INTEGER
8 BIGINT
expression または expression1 または expression2

引数は、SMALLINT、INTEGER、BIGINT、DECFLOAT、DECIMAL、REAL、DOUBLE のいずれかのデータ・タイプの整数値でなければなりません。 入力引数が N で表されるデータ・タイプと同じでない場合、入力は N で表されるデータ・タイプに暗黙的にキャストされます。 その結果、N で表されるデータ・タイプでサポートされる最大値より大きい値が関数への入力として渡されると、オーバーフローが発生する可能性があります (SQLSTATE=22003)。

引数のいずれかが NULL 値になる可能性がある場合、 結果も NULL 値になる可能性があります。 引数のいずれかが NULL 値の場合、その結果は NULL 値です。

データ・タイプ別の、および異なるハードウェア・プラットフォーム上での内部表記の相違が原因で、BIT 関数の結果および引数の内部表記を表示または比較するための関数 (HEX など) またはホスト言語構造の使用は、データ・タイプ依存であり、移植不可です。 データ・タイプおよびプラットフォームに依存せずに BIT 関数の結果および引数を表示または比較する方法は、実際の整数値を使用することです。

  • 例 1: 2 バイトの SMALLINT の最大サイズを超える値を関数 INT2AND の入力として渡します。
    select INT2AND(1234567,1) from SYSIBM.SYSDUMMY1
    SQL0413N  Overflow occurred during numeric data type conversion.  
    SQLSTATE=22003
  • 例 2: BIGINT の列 col1 と col2 に、それぞれ 137266 と 123825 という値が入っているとします。
    SELECT INT8AND(col1,col2) from TAB1
    returns the value 48
  • 例 3: SMALLINT の列 col1 と col2 に、それぞれ 12 と 13 という値が入っているとします。
    SELECT INT2AND(col1,col2) from TAB1
    returns the value 12