在sql查询中使用top关键字记录问题

时间:2012-01-06 12:10:10

标签: sql sql-server linq sql-server-2008-r2

我有一个Linq查询工作正常,但我注意到当我使用带有该查询的take关键字时,它不会返回相同的顶部选定记录。 当我看到Sql profiler查询它们完全相同时,除了顶级关键字之外,可能是什么问题。我注意到的另一件事是,当我在数据库中给出一个不大的记录时,它也能正常工作。

我附加查询并记录附件

enter image description here

当我在此查询中应用前10名时,它会显示此记录

enter image description here

使用Sql Server 2008 R2可能会出现什么问题。

3 个答案:

答案 0 :(得分:7)

使用TOP关键字而不进行排序并不能保证结果集的可重复性。

来自here

  

如果包含TOP的SELECT语句也具有ORDER BY子句,   从有序结果集中选择要返回的行。该   整个结果集按指定顺序构建,前n行构建   返回有序的结果集。

答案 1 :(得分:3)

尝试使用ORDER BY(或linq中的orderby强制查询订购记录。

答案 2 :(得分:3)

默认排序可能不同,请尝试按列显式排序。