首页 > 解决方案 > Db2 是否支持“重音不敏感”排序规则?

问题描述

在 Microsoft SQL Server 中,可以指定“不区分重音”排序规则(用于数据库、表或列)。这在 Db2 中可行吗?

标签: db2

解决方案


查看基于 Unicode 排序算法的排序规则文章。整理顺序是在数据库创建时指定的,不能更改。

请参阅CREATE DATABASE命令的 'COLLATE USING locale-sensitive-collat​​ion ' 子句。

无法在表或列级别指定排序规则,但您可以使用COLLATION_KEY_BIT函数来比较字符串表达式。

select 
  case when c1=c2 then 1 else 0 end r1
, case when COLLATION_KEY_BIT(c1, 'CLDR181_EO_S1')=COLLATION_KEY_BIT(c2, 'CLDR181_EO_S1') then 1 else 0 end r2
from table(values ('Café', 'Cafe')) t(c1, c2);

R1 R2
-- --
 0  1

如果您的数据库具有 CLDR181_EO_S1 排序规则,则第一列中的结果将为 1。


推荐阅读