- CHARとVARCHARの組合せを含む2つの文字列を比較する場合、実際は、長い文字列の長さに合わせて短い文字列にASCII空白文字が埋め込まれます。空白が埋め込まれた文字列と長い文字列の長さが同じであれば、2つの文字列は正しく比較されます。
- この後の項に説明する制限の範囲で、NCHARとNVARCHARを組み合わせた文字列の比較がサポートされます。これ以外のデータ型(CHARとVARCHARを含む)とNCHARを比較することはできません。
- NCHARとNVARCHARの組合せを含む2つの文字列を比較する場合、実際は、長い文字列の長さに合わせて短い文字列にUnicode空白文字(U+0020 SPACE)が埋め込まれます。空白が埋め込まれた文字列と長い文字列の長さが同じであれば、2つの文字列は正しく比較されます。
- BINARYとVARBINARYの組合せを含む2つのバイナリの値を比較する場合、実際は、長い値の長さに合わせて短い値に0(ゼロ)が埋め込まれます。0(ゼロ)が埋め込まれた値と長い値の長さが同じであれば、2つの値は正しく比較されます。
- DATE、TIMEまたはTIMESTAMP型を、同じデータ型またはCHAR/VARCHAR型の項目と比較できます。CHAR/VARCHAR型とDATE、TIME、TIMESTAMP型を比較する場合、CHAR/VARCHARは、対応するDATE、TIMEまたはTIMESTAMP型に変換されます。比較処理は入力された順序で実行されます。
- 数値を比較する場合、比較する前に値は強制的に同じデータ型に変換されます。
- 正確な値と近似値を比較する場合、正確な値は近似値に変換されます。
- 精度が異なる2つの近似値を比較する場合、精度がより大きい値に合わせて精度が小さい値が変換されます。
- 2つの正確な値(いずれも非DECIMAL)を比較する場合、より精度の大きい値に合わせて精度の小さい値が変換されます。値がともにDECIMALであれば、変換の必要はありません(暗黙的に0(ゼロ)が埋め込まれます)。一方の値だけがDECIMALで、スケールが0(ゼロ)で精度が小さい場合、DECIMALは整数型(TINYINT、SMALLINT、INTEGER、BIGINT)に変換されます。それ以外の場合は、整数型がDECIMALに変換されます。