2012-01-06 60 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

默认排序可能不同,请尝试按列明确排序。