我想编写一个查询来验证一行的8个参数与传递给过程的参数是否相同。如果其中任何一个不同,则修改状态,否则不执行任何操作。
有没有办法可以在一个IF情况下检查所有这些参数?例如:
IF (v_duty <> duty) OR (v_current <> current) OR (v_frequency <> frequency) THEN
* UPDATE ......;
END IF
或者我必须为我想要进行的每次比较使用ELSE IF
吗?
上述不起作用,每次测试之间有或没有括号。
答案 0 :(得分:2)
您可以使用简单的UPDATE和WHERE条件来管理它:
UPDATE table_name
SET status_column = 'new_status'
WHERE identifying_column = :identifier
AND (
v_duty != :v_duty
OR v_current != :current
OR v_frequency != :frequency
)