是否可以基于参数使Oracle查询中的limit子句成为可选的?我有一些很重的查询,需要很多时间来执行,所以我想在测试期间只提取10行(这几乎是即时的),但我不想对每种情况使用单独的查询。
limit
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
1条答案
按热度按时间des4xlb01#
这取决于你的上下文,但是你可以在FETCH FIRST &X ROWS ONLY中定义参数,并被要求输入值,或者你可以将其存储在一个表中,并根据需要进行更改。