温馨提示×

Oracle中LIMIT与OFFSET结合使用的技巧

小樊
105
2024-08-19 16:26:32
栏目: 云计算

在Oracle中,类似于MySQL中的LIMIT和OFFSET,可以使用ROWNUM来实现分页查询。以下是一个示例:

SELECT * 
FROM (
    SELECT t.*, ROWNUM AS rn
    FROM your_table t
    WHERE ROWNUM <= 20
) 
WHERE rn > 10;

上面的SQL语句中,首先在子查询中使用ROWNUM来给每一行添加一个行号,然后在外部查询中使用rn来限制返回的行数和偏移量。在这个例子中,偏移量为10,返回的行数为10。

另外,Oracle 12c引入了FETCH FIRST语句,可以更简洁地实现分页查询:

SELECT * 
FROM your_table
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY;

这个语法更简洁明了,可以指定偏移量和返回的行数。但是需要注意的是,FETCH FIRST语句只在Oracle 12c及以上版本中可用。

0