SQL中Top和Limit关键字的区别
一个快速的问题。 假设我有以下两个查询:
SELECT TOP 2 * FROM Persons;
和
SELECT * FROM Persons limit 2;
我想知道以上两个查询的执行之间的区别吗? 基本上,我想知道什么时候应该使用limit
关键字,什么时候适合使用top
关键字。 另外,数据库如何根据上述2个查询返回结果。
如果您正在使用SQL Server,请使用TOP
如果您使用MySQL
或Postgres
使用Limit
!
AFAIK目前没有支持这两种产品的产品。 下面是当前实现的一个列表, 这里是另一个列表(涵盖更多的产品,但更less的细节)
正如我在上面对Martin Smith的回答中所述,有些产品支持LIMIT
和TOP
(如您在这里所见)。 不同之处在于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都在亚马逊红移上工作
没有区别。 TOP
和LIMIT
关键字的function相同,并会返回相同的内容。
一个很大的错误,LIMIT是慢慢的,因为select返回full,然后数据库服务器只返回有限的数据。 什么时候可以使用TOP。