SQL LIMIT
关键字允许我们指定结果集中的记录数量。
示例
SELECT first_name, age
FROM Customers
LIMIT 2;
这里,SQL 命令从表中选择前 2 行。
带 OFFSET 子句的 SQL LIMIT
OFFSET
关键字与 LIMIT
一起使用,以指定从哪一行开始选择数据。例如:
-- LIMIT 2 selects two results
-- OFFSET 3 excludes the first three results
SELECT first_name, last_name
FROM Customers
LIMIT 2 OFFSET 3;
这里,SQL 命令从第四行开始选择 2 行。OFFSET 3
表示排除前 3 行。

注意:并非所有数据库管理系统 (DBMS) 都支持 LIMIT
子句。不同的 DBMS 使用不同的关键字来选择固定数量的行。例如:
关键字 | 数据库系统 |
---|---|
TOP |
SQL Server, MS Access |
LIMIT |
MySQL, PostgreSQL, SQLite |
FETCH FIRST |
Oracle, PostgreSQL (作为 SQL:2008 标准的一部分), DB2 |
SQL TOP 子句
TOP
关键字用于以下数据库系统代替 LIMIT
- SQL Server
- MS Access
让我们看一个例子。
SELECT TOP 2 first_name, last_name
FROM Customers;
这里,SQL 命令选择前 2 行的 first_name 和 last_name。
我们也可以使用 *
和 TOP
来选择所有列。
SELECT TOP 2 *
FROM Customers;
这里,SQL 命令从表中选择前 2 行。

SQL FETCH FIRST 子句
FETCH FIRST n ROWS ONLY
子句与 Oracle 数据库系统一起使用。
让我们看一个例子。
SELECT *
FROM Customers
FETCH FIRST 2 ROWS ONLY;
这里,SQL 命令从表中选择前 2 行。
使用 SELECT TOP 的更多方式
TOP 中的 PERCENT
PERCENT
关键字用于选择总行数的 n 百分比。例如:
SELECT TOP 40 PERCENT first_name, last_name
FROM Customers;
假设,我们的表包含 5 行。在这种情况下,上述 SQL 命令选择总行数的 40%(2 行)。
TOP 中的 WITH TIES
WITH TIES
子句用于在最后一行有相似值时选择更多行。我们来看一个例子:
SELECT TOP 3 WITH TIES first_name, country
FROM Customers
ORDER BY country DESC;
这里,SQL 命令:
- 首先按 country 降序排序行。
- 然后,选择前 3 行。
- 假设,最后一行的 country 字段是 USA。如果它们后面的行在 country 字段中也包含 USA,那么这些行也将被选中。
顺便说一下,ORDER BY
关键字必须始终与 WITH TIES
子句一起使用。
另请阅读