在SQL Server 2005中,当我写这样在查询中使用相同功能的两倍(SQL Server)的
SELECT m.*, a.price p1, b.price p2
FROM mytable m
LEFT JOIN products_table_1 a
ON my_hash_function(m.name) = a.hash
LEFT JOIN products_table_2 b
ON my_hash_function(m.name) = b.hash
一个查询my_hash_function(m.name)
计算两次或只有一次?如果两次,我如何使用一个变量来避免这种情况?
哦,我明白了。谢谢!你知道它是否会被执行两次否则不? – ercan 2010-01-29 10:32:44
我认为这取决于优化器的推理。我不知道,但我想它不会。 – momobo 2010-01-29 10:47:15