【发布时间】:2012-07-18 11:44:58
【问题描述】:
如何避免多次计算
我在存储过程中有这个(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?
【问题讨论】:
-
不确定,因为我没有接触过 db2,但你能不创建一个局部变量并将结果存储在其中吗?在 Sql-Server 中,您可以使用 DECLARE @x [SomeType] 创建一个变量,然后使用 SELECT @x = blah 或 SET @x = blah 设置它 - 在 db2 中不可能实现同样的事情吗?
-
有点题外话了,但我只是用谷歌搜索了 db2 变量并想出了这个关于设置变量的页面:publib.boulder.ibm.com/infocenter/db2luw/v9/… ...谁能告诉我语法区域的含义?那些破折号到底是什么鬼?!!空格有什么问题?谁设计了那个图表!?
标签: sql stored-procedures db2