gpt4 book ai didi

sql - PL/SQL FETCH NEXT 或 rownum

转载 作者:行者123 更新时间:2023-12-02 03:50:39 25 4
gpt4 key购买 nike

不多说,应该用什么?他们希望执行相同的任务。

行数?

select * from IDENTIFIKATOR
where rownum <= 10;

或者获取下一个?

select * from IDENTIFIKATOR
FETCH NEXT 10 ROWS ONLY;

根据进一步的期望 rownum,表面上看起来可能会更快

select * from (select * from IDENTIFIKATOR order by IDENTIFIKATORID )
where rownum <= 10;

基数为 10,成本为 10(普通执行时间为 0.15-0.2 秒(asc 与 desc))

select * from IDENTIFIKATOR 
order by IDENTIFIKATORID
FETCH NEXT 10 ROWS ONLY;

基数为 10,成本为 158869(普通执行时间为 1.9s-2s(asc 与 desc))

最佳答案

如果您使用的是 Oracle 12c+,那么我建议您习惯 FETCH 子句。它是 ANSI 标准语法,可在其他数据库中使用。另外,它更加灵活。例如,您可以这样做:

select i.*
from IDENTIFIKATOR i
order by col2 desc
fetch first 10 rows only;

而且,它支持 OFFSET 修饰符。

使用 rownum 执行此操作需要子查询。

另一方面,如果您的代码需要与早期版本的 Oracle 配合使用,那么 rownum 基本上是您唯一的选择。

关于sql - PL/SQL FETCH NEXT 或 rownum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45566519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com