如何解决SQL中Top和Limit关键字之间的区别
|| 一个快速的问题。假设我有以下两个查询:SELECT TOP 2 * FROM Persons;
和
SELECT * FROM Persons limit 2;
我想知道以上两个查询的执行之间的区别吗?
基本上,我想知道何时应使用limit
关键字以及何时合适使用top
关键字。
此外,数据库如何根据上述两个查询返回结果。
解决方法
如果您使用的是SQL Server,则使用
TOP
;如果使用的是MySQL
或Postgres
,请使用Limit
!
AFAIK目前没有产品同时支持两者。这是当前实现的一个列表,而这里是另一个(涵盖更多产品,但细节较少)
,正如我在上面对Martin Smith的回答的评论中所述,有些产品同时支持LIMIT
和TOP
(如您在此处看到的)。区别在于TOP
仅选择前n个记录,而LIMIT
允许定义偏移量以检索特定范围的记录:
SELECT * FROM ... LIMIT 5 OFFSET 10
该语句在跳过10条记录后选择前5条记录,而使用TOP
则不可能。
我发布的示例仅根据我上面链接的DBS进行了检查。由于时间不足,我没有检查SQL标准。
,TOP&LIMIT均适用于Amazon Redshift
,limit
适用于MySQL和PostgreSQL,top
适用于SQL Server,rownum
适用于Oracle。
,没有区别。 TOP
和LIMIT
关键字的功能相同,并且将返回相同的内容。
,一个大错误是,LIMIT缓慢是因为select返回完整,然后数据库服务器仅返回有限的数据。可能时使用TOP。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。