SQL Server Collat​​ion匹配Java不区分大小写的Unicode比较

aig*_*fer 5 java sql sql-server unicode collation

我一直在阅读很多关于校对的内容,并尝试了一些不同的东西,但我似乎无法得到我想要的结果.

我正在寻找一个不区分大小写,重音敏感的排序规则,但是在所有"常规"字符之后将所有字符都加上重音符号.例如,我想要一个这样的结果:

  • "aO Ark"
  • "AO史密斯电气产品公司"
  • "AZ Vesalius"
  • "A.ö.BKHSt.Johann/Tirol"

Latin1_General_BIN以我想要的方式处理重音,但它区分大小写.

Latin1_General_CI_AS,SQL_Latin1_General_CI_AS和Latin1_General_CI_AI都返回:

  • "aO Ark"
  • "AO史密斯电气产品公司"
  • "A.ö.BKHSt.Johann/Tirol"
  • "AZ Vesalius"

有这样的校对吗?

Rhy*_*nes 0

这个问题的简单答案是“否” - 没有排序规则可以按照您想要的方式对字符进行排序。

排序规则对管理某种语言(例如希腊语或波兰语)或字母表(例如 Latin1_General(西欧语言使用的拉丁字母表))字符的正确使用的规则进行编码。

您想要的并非没有道理,但它并不反映当前 SQL Server 排序规则建模的任何语言或字母表。

正如 @dasblinkenlight 所指出的,您可以ORDER BY (UPPER(str) collate Latin1_General_BIN)获取您所描述的顺序。