for循环中的if else语句
Posted
技术标签:
【中文标题】for循环中的if else语句【英文标题】:If else statement in for loop 【发布时间】:2012-09-17 11:16:51 【问题描述】:是否有可能在 for 循环中设置 if else 条件
例如
IF (emp_no IS NULL) then
for i in (select * from employees where emp_no= p_retval)
else
for i in (select * from employees where emp_no= p_retval_withcond)
end if;
当我尝试上述方法时,我遇到了编译错误。
问候
【问题讨论】:
【参考方案1】:结构如下
IF (emp_no IS NULL) then
for i in (select * from employees where emp_no= p_retval)
loop
-- loop actions
end loop;
else
for i in (select * from employees where emp_no= p_retval_withcond)
loop
-- second loop actions
end loop;
end if;
【讨论】:
【参考方案2】:for 循环是不可能的,但如果你在循环中的操作在这两种情况下是相似的,我会用光标来做。
declare
cursor c1 is select * from employees where emp_no= p_retval;
cursor c2 is select * from employees where emp_no= p_retval_withcond;
ligne employees%rowtype;
.....
begin
IF (emp_no IS NULL) then
open c1;
ELSE
open C2;
END IF;
loop
IF (emp_no IS NULL) then
fetch C1 into ligne;
exit when c1%notfound;
ELSE
fetch C2 into ligne;
exit when c2%notfound;
END IF;
-- loop actions
....
end loop;
IF (emp_no IS NULL) then
close c1;
ELSE
close C2;
END IF;
end;
【讨论】:
以上是关于for循环中的if else语句的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python将and else语句添加到for循环中的if作为lambda的一部分
Python基础语法—— 条件语句(if)+循环语句(for+while)