想知道是否有这样的事情:
begin
for C2 in cursor_sal loop
if something then
update emp
set name = George
where ID = 1
elsif something2 then
update emp
set name = Steve
where ID = 4
end if
end loop;
end;
可以变成这样或类似的东西:
begin
for C2 in cursor_sal loop
update emp
if something then
set name = George
elsif something2 then
set name = Steve
end if
where current of C2
end loop;
end;
或者这是不可能的,我坚持第一个例子?
答案 0 :(得分:3)
我知道这样做的最好方法是使用case语句,如下例所示。代码未经测试,但应足以让您继续。
begin
for C2 in cursor_sal loop
update emp
set name = case
when something then 'George'
when somethingelse then 'something2'
else 'somthing 3'
end
where current of C2
end loop;
end;
答案 1 :(得分:0)
您可以在更新语句中使用case语句,如下所示
update emp
set name = case when something then 'George'
when something2 then 'Steve'
end;
如果条件相同,您也可以使用解码功能。
update是sql语句,if语句是pl / sql构造。您可以在pl / sql中使用sql语句,但不能在sql中使用pl / sql构造。