在 SQL 中,SELECT TOP
, LIMIT
, 和 ROWNUM
是用来限制查询结果数量的子句,它们在不同的数据库管理系统中有所差异。以下是对这些子句的详细解释和代码示例:
1. SELECT TOP 子句(SQL Server 和 Sybase)
TOP
关键字用于 SQL Server 和 Sybase,允许你指定返回结果集的前 N 行记录。
基本语法
SELECT TOP N [PERCENT] column1, column2, ...
FROM table_name
WHERE condition;
N
:指定返回的记录数。PERCENT
:可选关键字,表示返回结果集的百分比。
代码示例
-- 返回前 3 条记录
SELECT TOP 3 id, name, salary
FROM Employees;
-- 返回前 50% 的记录
SELECT TOP 50 PERCENT id, name, salary
FROM Employees;
2. LIMIT 子句(MySQL 和 PostgreSQL)
LIMIT
关键字用于 MySQL 和 PostgreSQL,同样用于限制返回结果集的数量。它还可以与 OFFSET
子句结合使用,用于分页。
基本语法
SELECT column1, column2, ...
FROM table_name
LIMIT N [OFFSET M];
N
:指定返回的记录数。M
:可选参数,表示从哪条记录开始返回(默认为 0)。
代码示例
-- 返回前 3 条记录
SELECT id, name, salary
FROM Employees
LIMIT 3;
-- 跳过前 2 条记录,返回接下来的 3 条记录
SELECT id, name, salary
FROM Employees
LIMIT 3 OFFSET 2;
3. ROWNUM 伪列(Oracle)
ROWNUM
是 Oracle 数据库中的一个伪列,用于在查询结果集中为每一行分配一个唯一的数字。
基本语法
SELECT column1, column2, ...
FROM table_name
WHERE ROWNUM <= N;
N
:指定返回的记录数。
代码示例
-- 返回前 3 条记录
SELECT id, name, salary
FROM Employees
WHERE ROWNUM <= 3;