📜  oracle 限制行数 - SQL (1)

📅  最后修改于: 2023-12-03 15:03:24.962000             🧑  作者: Mango

Oracle 限制行数 - SQL

Oracle 数据库系统支持使用 ROWNUM 关键字来限制检索结果集的行数。ROWNUM 是 Oracle 内置的一个假想列,它会在检索时自动赋值,取值从 1 开始,并且递增 1。

以下是使用 ROWNUM 限制行数的 SQL 语句:

SELECT column1, column2, ... column_n
FROM table
WHERE ROWNUM <= n;

其中 n 表示要限制的最大行数。执行此 SQL 语句时,Oracle 数据库会先检索符合条件的行,然后在结果集中为每一行赋值 ROWNUM,然后根据 ROWNUM 的值筛选出指定数量的行。

需要注意的是,使用 ROWNUM 限制行数只能针对检索结果集中的前 N 行。例如,如果表中有 100 万行数据,执行以下 SQL 语句:

SELECT column1, column2, ... column_n
FROM table
WHERE ROWNUM <= 10;

那么返回的结果集只会包含前 10 行数据,而不是任意 10 行数据。

此外,如果要限制返回结果中的前 N 条,还可以使用 FETCH FIRST n ROWS ONLY 关键字。以下是使用 FETCH FIRST n ROWS ONLY 限制行数的 SQL 语句:

SELECT column1, column2, ... column_n
FROM table
FETCH FIRST n ROWS ONLY;

与使用 ROWNUM 的方式相比,使用 FETCH FIRST n ROWS ONLY 可以保证返回结果集的顺序是正确的,并且能够在 Oracle 版本 12c 或更高版本中使用。