2.7.4 述語の共通規則
-
比較できるデータについては,「変換(代入,比較)できるデータ型」を参照してください。ただし,各国文字データの比較対象として文字列定数を指定した場合は,文字列定数を各国文字列定数とみなします。文字列定数を各国文字列定数とみなした場合,文字データは長さチェックだけで,文字コードのチェックはされません。
-
文字データ同士の比較で,文字集合が異なる場合は比較できません。ただし,次の表に示す条件を満たす場合は,比較対象の文字集合に変換して比較できます。
表2‒1 異なる文字集合間の比較ができる条件(EBCDIKと既定文字集合(SJIS)の場合) EBCDIKの値式
既定文字集合(SJIS)の値式
文字列定数
埋込み変数,?パラメタ
文字列定数,埋込み変数,?パラメタ以外
文字列定数
−
−
−
埋込み変数,?パラメタ
×
×
×
文字列定数,埋込み変数,?パラメタ以外
○
○
×
- (凡例)
-
○:文字集合(EBCDIK)の文字コードに変換して比較します。
×:比較できません。
−:サポートしていません。
表2‒2 異なる文字集合間の比較ができる条件(UTF16と既定文字集合(UTF-8)の場合) UTF16の値式
既定文字集合(UTF-8)※の値式
文字列定数
埋込み変数,?パラメタ
文字列定数,埋込み変数,?パラメタ以外
文字列定数
−
−
−
埋込み変数,?パラメタ
●
×
●
文字列定数,埋込み変数,?パラメタ以外
○
○
×
- 注※
-
混在文字データを含みます。
- (凡例)
-
○:文字集合(UTF16)の文字コードに変換して比較します。
●:文字集合(UTF-8)の文字コードに変換して比較します。
×:比較できません。
−:サポートしていません。
-
固定長データと固定長データ,又は固定長データと可変長データを比較する場合は,短い方のデータの右側に比較で使用する文字集合の空白を埋めて,文字列長を同じにしてから比較します。
-
可変長文字データ同士の比較で,比較するデータの長さが異なる場合は,短い方のデータの長さ分だけ左側から比較します。このとき,結果が等しければ更に文字列長を比較します。
-
数データ同士の比較で,比較するデータのデータ型が異なる場合は,範囲の広い方のデータ型で比較します。範囲の広さを次に示します。
FLOAT > SMALLFLT > DECIMAL > INTEGER > SMALLINT
ただし,比較対象の一方がSMALLFLT型の場合,範囲の広さに関係なく,FLOAT型で比較します。
-
時刻印データ同士の比較で,小数秒精度が異なるデータ同士を比較する場合,精度を高い方に合わせて,拡張した小数秒部分に0を補います。
-
BINARY型同士の比較で,比較するデータの長さが異なる場合は,短い方のデータの長さ分だけを左側から比較します。このとき,結果が等しければ更にデータ長を比較します。
-
予備列は指定できません。