COLLATION_KEY_BIT 标量函数

COLLATION_KEY_BIT 函数返回 VARCHAR FOR BIT DATA 字符串,该字符串表示指定 collation-namestring-expression 的整理键。

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

该模式是 SYSIBM。

两个字符串的 COLLATION_KEY_BIT 的结果可以是二进制的,以确定它们在指定 collation-name中的顺序。 为了使比较有意义,使用的结果必须来自相同的 collation-name

string-expression
返回 CHAR , VARCHAR , GRAPHIC 或 VARGRAPHIC 字符串的表达式,应该确定该字符串的整理键。 如果 string-expression 是 CHAR 或 VARCHAR ,那么表达式不得为 FOR BIT DATA (SQLSTATE 429BM)。
如果 string-expression 不在 UTF-16中,那么此函数将执行 string-expression 到 UTF-16的代码页转换。 如果代码页转换的结果至少包含一个替换字符,那么此函数将返回带有替换字符的 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 的长度的六倍。

如果 string-expression 是空字符串,那么结果是可以具有非零长度的有效整理键。

如果参数可以为空值,那么结果可以为空值;如果参数为空值,那么结果为空值。

示例

  • 示例 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'