Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


2.7.4 述語の共通規則

  1. 比較できるデータについては,「変換(代入,比較)できるデータ型」を参照してください。ただし,各国文字データの比較対象として文字列定数を指定した場合は,文字列定数を各国文字列定数とみなします。文字列定数を各国文字列定数とみなした場合,文字データは長さチェックだけで,文字コードのチェックはされません。

  2. 文字データ同士の比較で,文字集合が異なる場合は比較できません。ただし,次の表に示す条件を満たす場合は,比較対象の文字集合に変換して比較できます。

    表2‒1 異なる文字集合間の比較ができる条件(EBCDIKと既定文字集合(SJIS)の場合)

    EBCDIKの値式

    既定文字集合(SJIS)の値式

    文字列定数

    埋込み変数,?パラメタ

    文字列定数,埋込み変数,?パラメタ以外

    文字列定数

    埋込み変数,?パラメタ

    ×

    ×

    ×

    文字列定数,埋込み変数,?パラメタ以外

    ×

    (凡例)

    ○:文字集合(EBCDIK)の文字コードに変換して比較します。

    ×:比較できません。

    −:サポートしていません。

    表2‒2 異なる文字集合間の比較ができる条件(UTF16と既定文字集合(UTF-8)の場合)

    UTF16の値式

    既定文字集合(UTF-8)の値式

    文字列定数

    埋込み変数,?パラメタ

    文字列定数,埋込み変数,?パラメタ以外

    文字列定数

    埋込み変数,?パラメタ

    ×

    文字列定数,埋込み変数,?パラメタ以外

    ×

    注※

    混在文字データを含みます。

    (凡例)

    ○:文字集合(UTF16)の文字コードに変換して比較します。

    ●:文字集合(UTF-8)の文字コードに変換して比較します。

    ×:比較できません。

    −:サポートしていません。

  3. 固定長データと固定長データ,又は固定長データと可変長データを比較する場合は,短い方のデータの右側に比較で使用する文字集合の空白を埋めて,文字列長を同じにしてから比較します。

  4. 可変長文字データ同士の比較で,比較するデータの長さが異なる場合は,短い方のデータの長さ分だけ左側から比較します。このとき,結果が等しければ更に文字列長を比較します。

  5. 数データ同士の比較で,比較するデータのデータ型が異なる場合は,範囲の広い方のデータ型で比較します。範囲の広さを次に示します。

     FLOAT > SMALLFLT > DECIMAL > INTEGER > SMALLINT

    ただし,比較対象の一方がSMALLFLT型の場合,範囲の広さに関係なく,FLOAT型で比較します。

  6. 時刻印データ同士の比較で,小数秒精度が異なるデータ同士を比較する場合,精度を高い方に合わせて,拡張した小数秒部分に0を補います。

  7. BINARY型同士の比較で,比較するデータの長さが異なる場合は,短い方のデータの長さ分だけを左側から比較します。このとき,結果が等しければ更にデータ長を比較します。

  8. 予備列は指定できません。