如何在Sql中对日语字符进行排序

时间:2013-05-31 10:19:09

标签: sql sql-server

如何在Sql Server中对以下日文字符进行排序,

賃貸人側連絡先 (Lessor side contact)
解約連絡先 (Termination contacts)
賃借人側連絡先 (Lessee side contact)
更新連絡先 (Update contact)

以上order(1,3,2,4)

但是,实际顺序是,(即我想要的输出)

賃貸人側連絡先 (Lessor side contact)
賃借人側連絡先 (Lessee side contact)
解約連絡先 (Termination contacts)
更新連絡先 (Update contact)

以上order(1,2,3,4)

我试过这样,

select * from test order by Test `COLLATE Japanese_CS_AS_KS`

但结果顺序如(3,4,2,1)

3 个答案:

答案 0 :(得分:4)

查看Windows Japanese collations而不是SQL排序规则(SQL Server支持两者),通过反复试验,这是有效的

DECLARE @t TABLE (id int, SomeString nvarchar(100));
INSERT @t VALUES
(1, N'賃貸人側連絡先'),
(3, N'解約連絡先'),
(2, N'賃借人側連絡先'),
(4, N'更新連絡先');

select * from @t order by SomeString COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS desc

不知道为什么你需要DESC。另请注意Japanese_XJIS_100_CS_AS_KS不起作用

答案 1 :(得分:1)

归类代码最后有3个粒子:

  • CS - 区分大小写
  • AS - 重音敏感
  • KS - 与日本有关的kanatype敏感(讨论在 这个questions

如果您想要不区分大小写的排序规则,请将CS更改为CI。因此,或许需要一种不同的敏感性组合。

答案 2 :(得分:1)

除了@ gbn的回答

  • 租有Radical-Stroke Count 154.6
  • 解有148.6
  • 更有73.3

所以问题应该是,为什么你想要降序?