23

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

我不想将我的排序规则指定为希腊语、冰岛语甚至西欧语。我希望能够使用 Unicode 支持的任何语言。

(我正在使用 MSSQL 2005)

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

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

4

3 回答 3

14

好吧,总是有一个像 Latin1_General_BIN2 这样的二进制排序规则。它以数字顺序存储代码点,这可以是任意的。虽然它不是特定于文化的(尽管有名字)。

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

于 2012-07-09T20:57:25.807 回答
5

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

排序规则可以让您对数据进行比较和排序。据我所知,没有什么比 Unicode 排序规则更好的了。

于 2012-07-07T10:15:02.073 回答
1

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

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

由于提出了这个问题,SQL Server 排序规则变得更加支持 Unicode https://docs.microsoft.com/en-us/sql/relational-databases/collat ​​ions/collat​​ion-and-unicode-support?view=sql-server -2017 年。同时,一些开源 DBMS 通过合并 ICU(Unicode 国际组件)库获得了支持 DUCET 和其他 Unicode 排序规则的能力。

于 2018-08-24T15:15:45.090 回答