1
負選擇NULL我有以下片下面的SQL。第二行(註釋)包含了我另外一個檢查,看看如果計算返回在這種情況下,應該選擇NULL負值。這種情況在多個其他案例陳述中。由於我的方法意味着兩次運行相同的計算,如果此計算列的值爲負,而不是執行兩次類似的計算,那麼選擇NULL時會有更好的替代方法還是更有效的方法?如果計算的列值是SQL
感謝
CASE
WHEN M.ALPHA = 'B' OR T.CT IN (0.001, 0.002) THEN NULL
-- WHEN ((M.VAL/NULLIF (M.VAL2, 0))/(NULLIF (T.VAL, 0)/T.VAL2)) < 0 THEN NULL
ELSE (M.VAL/NULLIF (M.VAL2, 0))/(NULLIF (T.VAL, 0)/T.VAL2)
END As WORLD
CASE表達式,而不是case語句。 (該表達式具有返回值。) – jarlh
「APPLY」的情況。 – Serg
。記住,僅僅因爲一個計算的文本在SQL中出現兩次,這並不意味着它實際上將被計算兩次(每行) - 如果它的確定性和優化感覺智能,它可能是能夠評估一次。 (另外,反過來也是如此 - 僅僅因爲你可以將事物轉移到只包含一次,這對DRY有好處,但這並不意味着系統不會多次評估它) –