在 SQL Server 2005 中,当我编写一个查询时
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)
计算两次还是只计算一次?如果两次,我如何使用变量来避免这种情况?
最佳答案
select mm.*, a.price p1, b.price p2 from
(SELECT m.*, my_hash_function(m.name) as name
FROM mytable m) mm
LEFT JOIN products_table_1 a
ON mm.name = a.hash
LEFT JOIN products_table_2 b
ON mm.name = b.hash
关于sql-server-2005 - 在查询中两次使用相同的函数 (SQL Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2161236/