Microsoft SQL Server是否支持本地化名称排序?

时间:2018-08-20 18:24:59

标签: sql sql-server sorting localization locale

我想知道Microsoft SQL Server是否支持基于本地化首选项的排序。我在https://technet.microsoft.com/en-us/library/cc835499(v=sql.110).aspx看到了一个页面,其中列出了如何根据语言规范比较字符串。但是我注意到英语和荷兰语的比较都使用Latin1_General_CI_AS

问题出在荷兰,许多人的姓氏都带有tussenvoegsel。因此,我相信De Jong的姓氏在按升序排序时将在Van Beethoven之后。

我的理解是Microsoft SQL Server不支持此用例,但我不确定100%。想知道其他人是否有不同的经历。谢谢!

1 个答案:

答案 0 :(得分:0)

没有办法告诉SQL Server文本的某些部分应与其他部分区别对待。

SQL Server知道并理解基于基于字符的的排序顺序(排序规则),例如 é 应该按照 e 进行排序。但是绝不能忽略基于单词和/或位置的,例如 Van

前缀可以超过1个字,例如“ Van der”和“ Van't”也很常见,that is not all by far。因此,按照某种内置规则“正确”执行此操作将非常复杂。

您唯一的选择是将前缀(“ Tussenvoegsel”)存储在单独的列中。

Wikipedia提到using a separate 'Tussenvoegsel' column is commonly done in The Netherlands-同时提到比利时的荷兰语部分并不经常这样做,因此您甚至需要了解自己的听众。