我有一个简单的查询,我希望运行未知次数(取决于表中的给定值)
select *
from lotTable
where lot = '1111'
我希望运行该查询X时间,具体取决于名为' code'在同一批次。 我尝试在PL / SQL中使用失败的for循环。
这是我试图运行的代码:
DECLARE Counter INT
DECLARE MaxC INT
SET Counter = 0
SET MaxC = (select code from lotTable where lot='1111')
while MaxC => Counter
BEGIN
SET Counter += 1
select *
from lotTable
where lot = '1111'
END
这是错误
答案 0 :(得分:2)
如果您只想让表格中的特定行重复code
次,那么您可以使用hierarchical query:
select *
from (
select *
from lotTable
where lot = 1111
)
connect by level <= code;
内部查询标识您感兴趣的单行,外部查询使用connect by level
结构重复该行。
没有内部查询connect by
有点混淆(参见this example with incorrect results);有解决方法,你也可以使用递归子查询因子来避免这种情况,但这更简单。