我有一個正常工作的Linq查詢,但我注意到當我使用take關鍵字與該查詢時,它不會返回相同的最高選定記錄。 當我看到Sql profiler查詢時,它們完全相同,只是最上面的關鍵字可能是問題所在。我還注意到的另一件事是,當我給數據庫中的記錄時,它不會影響記錄,它也可以正常工作。在sql查詢中使用top關鍵字的記錄問題
我附上了查詢和記錄附件
,當我在此查詢申請前10名就說明這個記錄
可能是什麼問題,即時通訊使用Sql Server 2008 R2。
我有一個正常工作的Linq查詢,但我注意到當我使用take關鍵字與該查詢時,它不會返回相同的最高選定記錄。 當我看到Sql profiler查詢時,它們完全相同,只是最上面的關鍵字可能是問題所在。我還注意到的另一件事是,當我給數據庫中的記錄時,它不會影響記錄,它也可以正常工作。在sql查詢中使用top關鍵字的記錄問題
我附上了查詢和記錄附件
,當我在此查詢申請前10名就說明這個記錄
可能是什麼問題,即時通訊使用Sql Server 2008 R2。
使用TOP
關鍵字沒有排序並不保證結果集的可重複性。
從here
如果包含TOP SELECT語句也有一個ORDER BY子句, 要返回的行從排序結果集選擇。整個結果集以指定的順序構建, 中的前n行返回有序結果集。
嘗試強制查詢以使用ORDER BY
(或orderby
in linq)來訂購記錄。
默認排序可能不同,請嘗試按列明確排序。
使用不帶'ORDER BY'的'TOP'不會產生可預測的結果......如果您想要「TOP 10」 - 您必須**定義排序標準應該是什麼!否則:什麼是「TOP 10」..... – 2012-01-06 13:33:30