繁体   English   中英

Linq Orderby与SQL Orderby

[英]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,则按以下顺序获取商品:

属性名

  1. 102100
  2. 112100
  3. 1-2000

在SQL和LINQ中,数据“ 1-2000”的顺序似乎有所不同。

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

请帮助!

由于您的问题被标记为“ Oracle”,因此我想您正在将SQL语句发送到Oracle数据库。

Oracle数据库使用的排序是在“ NLS”设置中定义的。 此设置的默认值取决于Oracle的安装方式以及主机服务器上的操作系统。

此处的更多信息: https : //docs.oracle.com/cd/B28359_01/server.111/b28298/ch5lingsort.htm

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

提取物:

“西班牙传统上将chllñ视为自己的字母,分别在cln之后排序。例如,以下西班牙语单词将按列出的顺序排序:

cabalmente,CABA LL一,酒馆,CA N A,clamar,curador,CH ACARA

最近,这种传统的西班牙分拣做法已被现代西班牙分拣取代,这消除了chll的特殊地位。”

您可以将linq sort方法与顺序StringComparer一起使用

list.Sort(StringComparer.Ordinal);

这给了我您期望的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM