Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sql查询中使用top关键字记录问题_Sql_Sql Server_Linq_Sql Server 2008 R2 - Fatal编程技术网

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

在sql查询中使用top关键字记录问题,sql,sql-server,linq,sql-server-2008-r2,Sql,Sql Server,Linq,Sql Server 2008 R2,我有一个Linq查询,它工作得很好,但我注意到,当我在该查询中使用take关键字时,它不会返回相同的顶级选定记录。 当我看到Sql profiler查询时,它们是完全相同的例外,只是top关键字,这可能是问题所在。我注意到的另一件事是,当我在数据库中给出一个no-bether-than记录时,take也可以正常工作 我附上查询和记录附件 当我在这个查询中应用前10名时,它会显示这些记录 使用Sql Server 2008 R2时可能会出现什么问题。尝试使用order by(或linq中的or

我有一个Linq查询,它工作得很好,但我注意到,当我在该查询中使用take关键字时,它不会返回相同的顶级选定记录。 当我看到Sql profiler查询时,它们是完全相同的例外,只是top关键字,这可能是问题所在。我注意到的另一件事是,当我在数据库中给出一个no-bether-than记录时,take也可以正常工作

我附上查询和记录附件

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


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

尝试使用
order by
(或linq中的
orderby
)强制查询对记录排序。

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

不按顺序使用
TOP
关键字不能保证结果集的可重复性

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


使用
TOP
而不使用
ORDER BY
不会产生可预测的结果。。。如果要
前10名
-必须定义排序标准!否则:前10名是什么。。。。。