SQL SELECT LIMIT、TOP、FETCH FIRST

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 行。

How to use SQL LIMIT Clause with OFFSET
示例:带 OFFSET 的 SQL LIMIT 子句

注意:并非所有数据库管理系统 (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_namelast_name

我们也可以使用 *TOP 来选择所有列。

SELECT TOP 2 *
FROM Customers;

这里,SQL 命令从表中选择前 2 行。

How to use SQL TOP Clause
示例:SQL TOP 子句

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 子句一起使用。


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战