如何避免多次计算
我在存储过程中有这个(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
?
如何避免多次计算
我在存储过程中有这个(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
?
您可以使用两个更新语句来做到这一点。. .
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;
这将对集合的第二部分使用旧值。