6

如何在 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)

4

3 回答 3

4

通过反复试验,查看 Windows日语排序规则而不是 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不起作用

于 2013-05-31T10:28:50.553 回答
1

整理代码末尾有 3 个粒子:

  • CS - 区分大小写
  • AS - 重音敏感
  • KS - 与日语相关的假名敏感(在此问题中讨论)

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

于 2013-05-31T10:26:42.493 回答
1

除了@gbn的回答

  • 租有部首笔画数 154.6
  • 解有148.6
  • 更有73.3

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

于 2013-05-31T11:55:34.733 回答