2013-04-09 75 views

回答

0

到@EdGibbs的選擇,如果你正在總結的值是整數:

Greatest(Sum(...),1) 

如果你有底片與當時也許抗衡:

Least(Greatest(Sum(...),1),0) 

的語法變得有點粗糙的,所以如果你是想堅持解碼或案例則:

Case Sum(...) 
    When 0 Then 0 
    Else 1 
End 

......或者......

Decode(Sum(...),0,0,Sum(...)) 

我不會去重複Sum()的解決方案。保持它DRY

1

在特定情況下,如果你想要得到的結果是1如果SUM大於零或者0如果SUM是零,你可以使用Oracle SIGN函數。我不知道是否有任何特殊的發現者語法,但發現者之外我會做這樣的事情:

SIGN(SUM(whatever you're summing)) 

的「techonthenet」站點文檔的功能here