如果我多次调用一个函数,那么它会每次都执行还是只执行一次,然后多次使用该值?
例子:
select my_function('filed'),my_function('filed')/field2,
(my_function('filed')*field1)/field3,
...... from my_table where group by filed1;
我的问题是my_function('filed')
将被执行一次,然后结果将被用于my_function('filed')/field2
and (my_function('filed')*field1)/field3
或每次my_function('filed')
将在系统级别调用并执行?
为什么不使用一个变量来捕获函数的值。
例如:
declare var_function (datatype(size)); // just to declare proper data type for your function
set var_function = my_function('filed');
select var_function, var_function/field2,
(var_function*field1)/field3,
....from my_table where group by filed1;
在这种情况下,您将重用函数结果,而无需重复函数的过程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)