我有時寫在表格上的SELECT:如何避免在選擇中一次又一次地重複列值的計算?
SELECT
a.col1 + b.col2 * c.col4 as calc_col1,
a.col1 + b.col2 * c.col4 + xxx as calc_col1_PLUS_MORE
FROM ....
INNER JOIN ...
ON a.col1 + b.col2 * c.col4 < d.some_threshold
WHERE a.col1 + b.col2*c.col4 > 0
當計算得到相當複雜,並且在同一SELECT
內使用高達3-5倍,我真的想重構說出來的功能或類似爲了:
- 希望提高性能/利用高速緩存的
- 避免遺忘更新4點計算時,我在稍後階段才意識到我需要改變計算的一個。
我通常在SP中有這些選擇。
任何想法?
完美!我真的需要更多地開始使用CTE。到目前爲止,我只使用它們來遞歸樹結構,但它們也確實有很多幫助。 – Peter 2010-04-07 03:27:04