SQL中Top和Limit关键字的区别

一个快速的问题。 假设我有以下两个查询:

SELECT TOP 2 * FROM Persons; 

 SELECT * FROM Persons limit 2; 

我想知道以上两个查询的执行之间的区别吗? 基本上,我想知道什么时候应该使用limit关键字,什么时候适合使用top关键字。 另外,数据库如何根据上述2个查询返回结果。

如果您正在使用SQL Server,请使用TOP如果您使用MySQLPostgres使用Limit

AFAIK目前没有支持这两种产品的产品。 下面是当前实现的一个列表, 这里是另一个列表(涵盖更多的产品,但更less的细节)

正如我在上面对Martin Smith的回答中所述,有些产品支持LIMITTOP (如您在这里所见)。 不同之处在于TOP只select前n条logging,但是LIMIT允许定义偏移量来检索特定范围的logging:

 SELECT * FROM ... LIMIT 5 OFFSET 10 

这条语句在跳过10条logging之后select前5条logging,这在TOP是不可能的。

我发布的例子只是针对上面链接的DBS进行检查。 由于时间不够,我没有检查SQL标准。

limit在MySQL和PostgreSQL top工作,在SQL Server top工作, rownum在Oracle上工作。

TOP&LIMIT都在亚马逊红移上工作

没有区别。 TOPLIMIT关键字的function相同,并会返回相同的内容。

一个很大的错误,LIMIT是慢慢的,因为select返回full,然后数据库服务器只返回有限的数据。 什么时候可以使用TOP。