一个快速的问题。假设我有以下两个查询:
SELECT TOP 2 * FROM Persons;
和
SELECT * FROM Persons limit 2;
我想知道以上两个查询的执行之间的区别吗?基本上,我想知道何时应使用limit
关键字以及何时适合使用top
关键字。此外,数据库如何根据上述两个查询返回结果。
Answers:
如我在上面对Martin Smith的回答的评论中所述,有些产品同时支持LIMIT
和TOP
(如您在此处看到的)。区别在于TOP
仅选择前n个记录,但LIMIT
允许定义偏移量以检索特定范围的记录:
SELECT * FROM ... LIMIT 5 OFFSET 10
该语句在跳过10条记录后选择了前5条记录,而使用则无法执行TOP
。
我发布的示例仅根据我上面链接的DBS进行了检查。由于时间不足,我没有检查SQL标准。
TOP&LIMIT均适用于Amazon Redshift
一个大错误是,LIMIT是缓慢的,因为select返回完整,然后数据库服务器仅返回有限的数据。可能时使用TOP。