代替照合規則に基づいて 2 つの文字列を比較できます。
COMPARE( string-expression-1, string-expression-2 [, { collation-id | collation-name[(collation-tailoring-string) ] } ] )
string-expression-1 最初の文字列式。
string-expression-2 2 番目の文字列式。
文字列式には、データベース側文字セットでエンコードされた文字のみを指定できます。
collation-id 使用するソート順を指定する変数または定数 (整数)。collation-id は、組み込みの照合にのみ使用できます。SORTKEY 関数 [文字列]を参照してください。
照合名または照合 ID を指定しない場合のデフォルトは、デフォルト Unicode マルチ言語です。
collation-name 使用する照合順の名前を指定する文字列または文字変数。また、char_collation または db_collation (たとえば、COMPARE( 'abc', 'ABC', 'char_collation' );
) を指定して、データベースが使用している CHAR の照合順を使用できます。同様に、nchar_collation を指定して、データベースで使用している NCHAR の照合順を使用できます。有効な照合名のリストについては、SORTKEY 関数 [文字列]を参照してください。
collation-tailoring-string オプションで、文字列の比較を詳細に制御することを目的に、照合の適合化オプション (collation-tailoring-string) を指定できます。これらのオプションは、キーワード=値 の形式で、カッコで囲んで指定して、その後ろに照合名を記述します。たとえば、'UCA(locale=es;case=LowerFirst;accent=respect)'
のように記述します。これらのオプションの組み合わせを指定する構文は、CREATE DATABASE 文の COLLATION 句を定義する構文と同じです。照合の適合化オプションを参照してください。
UCA 照合を指定すると、照合の適合化のすべてのオプションがサポートされます。その他の照合の場合、大文字小文字の区別の適合化オプションのみがサポートされます。
選択した照合規則に基づく INTEGER。
値 | 意味 |
---|---|
1 | string-expression-1 が string-expression-2 より大きい |
0 | string-expression-1 が string-expression-2 に等しい |
-1 | string-expression-1 が string-expression-2 より小さい |
COMPARE 関数は、データベースのブランク埋め込みが有効になっている場合でも、空の文字列とスペースだけの文字列を同等と見なしません。COMPARE 関数は SORTKEY 関数を使用して、比較に使用する照合キーを生成します。したがって、空の文字列、1 つのスペースを持った文字列、2 つのスペースを持った文字列は、等しいと見なされません。
string-expression-1 または string-expression-2 が NULL の場合、結果は NULL です。
SQL/2003 ベンダ拡張。
次の例では、COMPARE 関数を使用して 3 つの比較を行います。
SELECT COMPARE( 'abc','ABC','UCA(case=LowerFirst)' ), COMPARE( 'abc','ABC','UCA(case=Ignore)' ), COMPARE( 'abc','ABC','UCA(case=UpperFirst)' ); |
戻り値は -1、0、1 で、それぞれ比較の結果を示します。最初の比較の結果は -1 です。これは、string-expression-2 ('ABC') が string-expresssion-1 ('abc') よりも小さいことを示します。最初の COMPARE 文で、大文字と小文字の区別が LowerFirst に設定されているため、このような結果となります。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |