有没有"Unicode 排序规则"这样的东西?



或者如果不是,那么实际上什么是 Sql Server collation?也许我对排序规则(作为一个概念)的理解是错误的。

我不想具体说明我的归类为希腊语或冰岛语,甚至西欧语。我希望能够使用 Unicode 支持的任何语言。

(我正在使用MSSQL 2005)

更新:好的,我正在改写这个问题:是否有一种通用的、独立于文化的排序规则可用于任何文化的文本?我知道它不会包含特定于区域性的规则,如匈牙利语中的"ty"或德语中的 ß=ss,但会提供一致的、大部分可接受的结果。

是否有任何特定于文化的排序规则?

嗯,总有一个像Latin1_General_BIN2这样的二进制排序规则。它以数字顺序存储代码点,这可能是非常任意的。不过,它不是特定于文化的(尽管名称如此)。

听起来没有任何智能方法可以将来自多种语言/文化的数据分类在一起,因此您所能做的就是按二进制值进行排序,而不是半生不熟的解决方案。

这是一篇了解什么是排序规则的好文章,简短而甜蜜:SQL Server 和排序规则。

排序

规则允许您比较和排序数据。据我所知,没有什么比Unicode排序规则更好的了。

有一个默认的 Unicode 排序规则,"默认 Unicode 排序规则元素表 (DUCET)",在 Unicode 排序规则算法技术标准文档中描述http://www.unicode.org/reports/tr10/。

但是有人称它为默认的Unicode排序规则,而不是Unicode 排序规则,因为当然不止一个 - 例如匈牙利语的 unicode.org 图表http://www.unicode.org/cldr/charts/28/collation/hu.html描述了 Unicode 的匈牙利语排序规则字符与 DUCET 不同。

既然问了这个问题SQL Server 排序规则变得更加能够识别 Unicodehttps://learn.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-2017。同时,一些开源DBMS通过合并ICU(Unicode国际组件)库,获得了支持DUET和其他Unicode排序规则的能力。

最新更新