oracle查询的可选限制

olhwl3o2  于 2023-06-22  发布在  Oracle
关注(0)|答案(1)|浏览(116)

是否可以基于参数使Oracle查询中的limit子句成为可选的?
我有一些很重的查询,需要很多时间来执行,所以我想在测试期间只提取10行(这几乎是即时的),但我不想对每种情况使用单独的查询。

des4xlb0

des4xlb01#

这取决于你的上下文,但是你可以在FETCH FIRST &X ROWS ONLY中定义参数,并被要求输入值,或者你可以将其存储在一个表中,并根据需要进行更改。

WITH
    tbl AS
        ( Select LEVEL "ID", TRUNC(SYSDATE) - (LEVEL - 1) "DT" From Dual Connect By LEVEL <= 10 )

Select * 
From tbl
Fetch FIRST &X ROWS ONLY  -- for X = 3
--
--          ID DT       
--  ---------- ---------
--           1 05-JUN-23
--           2 04-JUN-23
--           3 03-JUN-23
--
Select * 
From tbl
Fetch FIRST (Select 5 From Dual) ROWS ONLY

--          ID DT       
--  ---------- ---------
--           1 05-JUN-23
--           2 04-JUN-23
--           3 03-JUN-23
--           4 02-JUN-23
--           5 01-JUN-23

相关问题