2012-01-06 56 views
2

我有一個正常工作的Linq查詢,但我注意到當我使用take關鍵字與該查詢時,它不會返回相同的最高選定記錄。 當我看到Sql profiler查詢時,它們完全相同,只是最上面的關鍵字可能是問題所在。我還注意到的另一件事是,當我給數據庫中的記錄時,它不會影響記錄,它也可以正常工作。在sql查詢中使用top關鍵字的記錄問題

我附上了查詢和記錄附件

enter image description here

,當我在此查詢申請前10名就說明這個記錄

enter image description here

可能是什麼問題,即時通訊使用Sql Server 2008 R2。

+1

使用不帶'ORDER BY'的'TOP'不會產生可預測的結果......如果您想要「TOP 10」 - 您必須**定義排序標準應該是什麼!否則:什麼是「TOP 10」..... – 2012-01-06 13:33:30

回答

7

使用TOP關鍵字沒有排序並不保證結果集的可重複性。

here

如果包含TOP SELECT語句也有一個ORDER BY子句, 要返回的行從排序結果集選擇。整個結果集以指定的順序構建, 中的前n行返回有序結果集。

3

嘗試強制查詢以使用ORDER BY(或orderby in linq)來訂購記錄。

3

默認排序可能不同,請嘗試按列明確排序。