簡體   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