スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

2.7.4 述語の共通規則

  1. 比較できるデータについては,「1.2.2 変換(代入,比較)できるデータ型」を参照してください。ただし,各国文字データの比較対象として文字列定数を指定した場合は,文字列定数を各国文字列定数とみなします。文字列定数を各国文字列定数とみなした場合,文字データは長さチェックだけで,文字コードのチェックはされません。
  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型同士の比較で,比較するデータの長さが異なる場合は,短い方のデータの長さ分だけを左側から比較します。このとき,結果が等しければ更にデータ長を比較します。