COLLATION_KEY_BIT 标量函数
COLLATION_KEY_BIT 函数返回 VARCHAR FOR BIT DATA 字符串,该字符串表示指定 collation-name中 string-expression 的整理键。
该模式是 SYSIBM。
两个字符串的 COLLATION_KEY_BIT 的结果可以是二进制的,以确定它们在指定 collation-name中的顺序。 为了使比较有意义,使用的结果必须来自相同的 collation-name。
- string-expression
- 返回 CHAR , VARCHAR , GRAPHIC 或 VARGRAPHIC 字符串的表达式,应该确定该字符串的整理键。 如果 string-expression 是 CHAR 或 VARCHAR ,那么表达式不得为 FOR BIT DATA (SQLSTATE 429BM)。
- collation-name
- 一个字符常量,用于指定确定整理键时要使用的整理。
collation-name 的值不区分大小写,并且必须是 基于 Unicode 整理算法的整理 或 Unicode 数据的语言感知整理 (SQLSTATE 42616) 之一。
- length
- 用于指定结果的长度属性(以字节计)的表达式。 如果指定了此参数,那么 length 必须是 1 到 32 672 之间的整数 (SQLSTATE 42815)。
如果未指定 length 的值,那么结果的长度确定如下:
| 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'
