select dbo.f(a),dbo.f(a),dbo.f(a)+1
from t执行上述语句会不会对dbo.f(a)进行重复调用(总共需要调用三次),还是sql server自己进行了优化,只调用一次dbo.f(a),然后再计算得到另两个字段的值?
from t执行上述语句会不会对dbo.f(a)进行重复调用(总共需要调用三次),还是sql server自己进行了优化,只调用一次dbo.f(a),然后再计算得到另两个字段的值?
select tmp.b as col1,tmp.b as col2,tmp.b+1 as col3
from
(
select dbo.f(a) as b from t
) tmp
建议,不要用太多的自定义函数,除非你明确不会产生性能问题。