4
看看這個TSQL代碼:是否可以在相同的select中重用聚合函數結果?
SELECT A, B, C, (MAX(A) - MAX(B))*C AS 'myCalculatedColumn',
dbo.[udf_GetBetaInv]((MAX(A) - MAX(B))*C, A, B, C) as 'BetaInv'
FROM dbo.MyTable
WHERE...
有什麼辦法有塊:(MAX(A) - MAX(B))*C
寫入一次,並在myCalculatedColumn定義,也可以作爲在同一語句UDF的參數使用。
我主要關心的是性能,不確定SQL Server是否計算一次或多次,但即使只有一次,最好讓SQL代碼更具可讀性和緊湊性,並且只有一個位置可以修改,以防萬一我們應該更改公式。
編輯。我建議使用CROSS最近申請完全一樣的問題:simplify SQL statement by using CTE
很酷的作品像一個迷人的,同樣的表現之前,但更乾淨的代碼,謝謝! –