COLLATION_KEY_BIT スカラー関数

COLLATION_KEY_BIT 関数によって、指定した collation-name 内の string-expression の照合キーを表す VARCHAR FOR BIT DATA ストリングが返されます。

Read syntax diagramSkip visual syntax diagramCOLLATION_KEY_BIT(string-expression ,collation-name, length)

スキーマは SYSIBM です。

2 つのストリングの COLLATION_KEY_BIT の結果では、指定した collation-name 内のそれらの順序を判別するためのバイナリー比較を行うことができます。 比較が意味を持つためには、使用される結果が同じ collation-name に基づいている必要があります。

ストリング式
照合キーが判別される対象の CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC ストリングを返す式。 string-expression が CHAR または VARCHAR の場合、式を FOR BIT DATA にしないでください (SQLSTATE 429BM)。
string-expression が UTF-16 でない場合、この関数では string-expression の UTF-16 へのコード・ページ変換が実行されます。 コード・ページ変換の結果に少なくとも 1 つの置換文字が含まれている場合は、この関数により 1 つ以上の置換文字を持つ UTF-16 ストリングの照合キーが返され、SQLCA 内の警告標識 SQLWARN8 が 'W' に設定されます。
照合名 (collation-name)
照合キーを判別する際に使用する照合を指定する文字定数。

collation-name の値は大/小文字の区別がなく、 Unicode 照合アルゴリズム・ベースの照合 または Unicode データの言語対応型照合 のいずれかでなければなりません (SQLSTATE 42616)。

length
結果の長さ属性をバイト単位で指定する式。 指定した場合は、length は 1 から 32 672 の範囲の整数である必要があります (SQLSTATE 42815)。
length の値を指定しない場合、結果の長さは以下のように決定されます。
表 1. 結果の長さの決定
string-expression のデータ・タイプ 結果データ・タイプの長さ
CHAR(n) または VARCHAR(n) 12n バイトと 32 672 バイトのうちの最小値
GRAPHIC(n) または VARGRAPHIC(n) 12n バイトと 32 672 バイトのうちの最小値

length を指定したかどうかに関係なく、照合キーの長さが結果のデータ・タイプの長さより長い場合は、エラー (SQLSTATE 42815) が戻ります。 照合キーの最終的な実際の長さは、UTF-16 に変換された後、string-expression の長さの約 6 倍になります。

string-expression が空ストリングの場合は、結果は、ゼロ以外の長さを持つ可能性がある有効な照合キーです。

引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数のいずれかが NULL の場合、その結果は NULL 値です。

  • 例 1: 以下の照会では、ドイツ語の言語認識照合をコード・ページ 923 で使用して、従業員が姓で順序付けられます。
       SELECT FIRSTNME, LASTNAME
         FROM EMPLOYEE
         ORDER BY COLLATION_KEY_BIT (LASTNAME, 'SYSTEM_923_DE')
  • 例 2: 次の照会では、ケベック州にある従業員の部門を検索するために言語文化的に正しい比較が使用されます。
        SELECT E.WORKDEPT
         FROM EMPLOYEE AS E INNER JOIN SALES AS S
         ON COLLATION_KEY_BIT(E.LASTNAME, 'CLDR181_LFR') =
           COLLATION_KEY_BIT(S.SALES_PERSON, 'CLDR181_LFR')
         WHERE S.REGION = 'Quebec'