如何在update语句中使用if contions



我需要在更新查询中使用if条件,请检查并告诉我下面的更新语句能正常工作吗??

if opt=1 then
update EOD SET  flag='Y' where Step_name='STEP_1'
else if
ip opt=2 then
update EOD SET  flag='Y' where Step_name='STEP_2'
end if;
'''

您可以使用where子句来完成此操作。

update EOD SET  flag='Y' where (Step_name=STEP_1 and opt=1) or(Step_name=STEP_2 and opt=2);

要按预期在PL/SQL中而不是else if中执行,需要使用elseif:

if opt=1 then
update EOD SET  flag='Y' where Step_name=STEP_1;
elseif opt=2 then
update EOD SET  flag='Y' where Step_name=STEP_2;
end if;
CREATE
OR REPLACE PROCEDURE archana (opt IN NUMBER) IS
BEGIN
IF opt = 1 THEN
UPDATE EOD SET FLAG = 'Y' WHERE STEP_NAME = 'STEP_1';
ELSIF opt = 2 THEN
UPDATE EOD SET FLAG = 'Y' WHERE STEP_NAME = 'STEP_2';
ELSE
dbms_output.put_line('ERROR');
END IF;
END;

opt被接受为输入参数,然后基于该值执行相应的更新查询。附言:请在这个论坛发帖之前测试一下你的代码,而不是问它是否有效。如果它不起作用,那么很多偷窥者都会来帮忙。

最新更新