Linq Orderby vs SQL Orderby



我有一个表列(varchar),其中包含以下数据:

column_name

  1. 102100
  2. 1-2000
  3. 112100

当我在SQL语句中使用orderby时,我按以下顺序获取项目:

column_name

  1. 1-2000
  2. 102100
  3. 112100

如果我查询数据(数据来自WCF)并使用Linq Orderby,则按以下顺序获取项目:

propertyName

  1. 102100
  2. 112100
  3. 1-2000

数据" 1-2000"似乎在SQL和LINQ中的排序不同。

我尝试使用StringComparison.OrdinalStringComparison.InvariantCulture,但似乎仍然不起作用。

请帮助!

由于您的问题被标记为" Oracle",我想您将SQL语句发送到Oracle数据库。

在" NLS"设置中定义了Oracle数据库使用的排序。此设置的默认值取决于Oracle如何安装和主机服务器上的操作系统。

更多信息在这里:https://docs.oracle.com/cd/b28359_01/server.111/b28298/ch5lingsort.htm

和一张来自Oracle的非常详细的白皮书:http://www.oracle.com/technetwork/database/database-technologies/globalization/globalization/twp-appdev-linguistic-sorting-sorting-10gr2-10gr2-132064.pdf

提取:

"西班牙传统上将 ch ll 以及ñ作为自己的字母,以 c , l n

Cabalmente,Caba ll a,Cantina,ca n n a,Clamar,Curador, CH ch Ácara

最近,这种传统的西班牙分类实践已被现代西班牙人所取代,它消除了 ch ll 的特殊地位。"

您可以将Linq排序方法与Ordinal StringComparer

一起使用
list.Sort(StringComparer.Ordinal);

这给了我您的预期结果。

最新更新