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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 関数 » SQL 関数 (A ~ D)

 

COMPARE 関数 [文字列]

代替照合規則に基づいて 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-1string-expression-2 より大きい
0 string-expression-1string-expression-2 に等しい
-1 string-expression-1string-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 に設定されているため、このような結果となります。