Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL リファレンス » SQL データ型 » データ型変換 » データ型間の比較

 

CHAR と NCHAR の比較

CHAR 型 (CHAR、VARCHAR、LONG VARCHAR) の値と NCHAR 型 (NCHAR、NVARCHAR、LONG NVARCHAR) の値との間で比較を実行する場合は、比較を実行する型を判断するために推定規則が使用されます。一般的に、一方の値のみがカラム参照に基づいている場合は、カラム参照が含まれている値の型を使用して比較が実行されます。

推定規則では、値がカラム参照に基づいているかどうかが重要です。一方の値が変数、ホスト変数、またはリテラル定数であるか、またはカラム参照に基づいていない複雑な式であり、かつもう一方の値がカラム参照に基づいている場合は、暗黙的に、定数に基づく値がカラムに基づく値にキャストされます。

次に、推定規則を適用順に示します。

  • NCHAR 値がカラム参照に基づいている場合は、暗黙的に CHAR 値が NCHAR にキャストされ、NCHAR として比較されます。NCHAR 値と CHAR 値の両方がカラム参照に基づいている場合も同様です。

  • NCHAR 値がカラム参照に基づいておらず、かつ CHAR 値がカラム参照に基づいている場合は、暗黙的に NCHAR 値が CHAR にキャストされ、CHAR として比較されます。

    NCHAR から CHAR への変換が予想される場合は、on_charset_conversion_failure オプションの設定を検討することが重要です。このオプションでは、NCHAR 文字を CHAR 文字セットで表せないときの動作を制御するからです。

  • どちらの値もカラム参照に基づいていない場合、暗黙的に CHAR 値が NCHAR にキャストされ、NCHAR として比較されます。

 例
 参照