如何避免多次计算
我在存储过程(IBM DB2)
中有这个UPDATE my_table
SET field1 = my_func(fieldx, 1, 2),
field2 = my_func(fieldx, 1, 2) * fieldy
WHERE my_key =
AND another_field < 0;
如何避免重复调用该函数my_func
?
答案 0 :(得分:0)
您可以使用两个更新语句来完成此操作。 。
UPDATE my_table
SET field1 = my_func(fieldx, 1, 2)
WHERE my_key = AND another_field < 0;
UPDATE my_table
SET field2 = field1 * fieldy
WHERE my_key = AND another_field < 0;
顺便说一句,以下内容在DB2中不会按预期工作:
UPDATE my_table
SET field1 = my_func(fieldx, 1, 2),
field2 = field1 * fieldy
WHERE my_key = AND another_field < 0;
这将使用旧值作为集合的第二部分。