Hitachi

Hitachi Advanced Data Binder SQLリファレンス


8.11.6 BITXOR

2つのバイナリデータのビットごとの排他的論理和を返します。

〈この項の構成〉

(1) 指定形式

スカラ関数BITXOR::=BITXOR(対象データ1,対象データ2)
 
  対象データ1::=値式
  対象データ2::=値式

(2) 指定形式の説明

対象データ1および対象データ2

バイナリデータを指定します。

指定規則を次に示します。

  • 対象データ1および対象データ2は,値式の形式で指定します。値式については,「7.21 値式」を参照してください。

  • 対象データ1および対象データ2には,BINARY型またはVARBINARY型のデータを指定してください。

  • 対象データ1対象データ2のデータ長(対象データがBINARY型の場合),または実長(対象データがVARBINARY型の場合)が同じになるようにしてください。

  • 対象データ1には,?パラメタを単独で指定できません。

  • 対象データ2に?パラメタを単独で指定した場合,?パラメタに仮定されるデータ型とデータ長は,対象データ1のデータ型とデータ長になります。

スカラ関数BITXORの実行結果の例を次に示します。

(例)

2つのバイナリデータのビットごとの排他的論理和を返します。

BITXOR(B'01011011',B'01001110') → B'00010101'

BITXOR(B'01011011',X'FF') → B'10100100'

BITXOR(X'0F',X'FF') → X'F0'

(3) 規則

  1. スカラ関数BITXORの実行結果(第nビット目の値)は,次の表に示すようになります。

    表8‒45 スカラ関数BITXORの実行結果(第nビット目の値)

    対象データ1の第nビット目の値

    対象データ2の第nビット目の値

    スカラ関数BITXORの実行結果(第nビット目の値)

    0

    0

    0

    1

    1

    1

    0

    1

    1

    0

  2. 実行結果のデータ型とデータ長は,対象データ1および対象データ2のデータ型とデータ長によって決まります。スカラ関数BITXORの実行結果のデータ型とデータ長を次の表に示します。

    表8‒46 スカラ関数BITXORの実行結果のデータ型とデータ長

    対象データ1のデータ型およびデータ長

    対象データ2のデータ型およびデータ長

    実行結果のデータ型とデータ長

    BINARY(m)

    BINARY(m)

    BINARY(m)

    VARBINARY(Y)

    対象データの実長:m

    VARBINARY(Y)

    対象データの実長:m

    VARBINARY(X)

    対象データの実長:m

    BINARY(m)

    VARBINARY(X)

    対象データの実長:m

    VARBINARY(Y)

    対象データの実長:m

    VARBINARY(MAX(X,Y))

    対象データの実長:m

    (凡例)

    m:データ長または実長

    X:データ長(Xmの場合)

    Y:データ長(Ymの場合)

  3. 実行結果の値は,非ナル値制約なし(ナル値を許す)となります。

  4. 対象データ1または対象データ2のどちらかがナル値の場合,実行結果はナル値になります。

  5. 対象データ1および対象データ2の実長が0バイトの場合,実行結果は実長0バイトのバイナリデータになります。