5

我的问题很简单:我有一个字符串数组。在 Java 中对其进行排序会给出一个顺序,而在 Sql Server 2005 中的顺序略有不同。我发现的一个差异示例是在两个字符串的情况下: "jyl ; pagespro" , "jyl" ,Java 按此顺序排序,Sql 按相反顺序排序。我试图通过 ascii(myColumn) 使 Sql Server 订单,但仍然没有效果。我该如何解决这个问题????

4

2 回答 2

4

为了扩展 DaveE 的答案,如果您已确定要用于排序的排序规则,则可以在 ORDER BY 子句中使用其名称,如下所示: ORDER BY colA COLLATE SQL_Latin1_General_Cp437_CS_AS_KI_WI

请注意,这不会使用可能在 上定义的排序索引colA。您可以通过使用计算列来解决这个问题。

一般来说,我建议在一个地方进行所有排序:在 Java 中或在数据库中,但有时不是在这里,有时是那里。这只会导致混乱和复杂性。

于 2013-01-17T19:18:46.827 回答
1

我怀疑它与有效的 SQL Server排序规则有关。这不仅会影响可用的字符集,还会影响字符相互排序的方式。即使在相当通用的 SQL_Latin1_General 系列中,也有许多特定的排序规则可用。

于 2013-01-17T18:40:05.207 回答