2016-10-13 65 views

回答

2

只需使用case

select sum(case when val > 0 then val end) as pos_sum, 
     sum(case when val < 0 then val end) as neg_sum 
from t; 
+0

謝謝@Gordon Linoff。 –

+0

請你可以告訴我如何做約束驗證。請問什麼是提前。 –

+0

@GyanendraKumar。 。 。如果你還有其他問題,那就把它當作一個問題而不是評論。 –

3

你嘗試過什麼?這聽起來像你只是想

select sum(case when some_number < 0 then some_number else 0 end) sum_neg, 
     sum(case when some_number > 0 then some_number else 0 end) sum_pos 
    from your_table 

它始終是有幫助的,雖然,包括表定義,樣本數據,並與你已經嘗試過沿着預期的產出。這將大大改善你可能得到的答案。

0

當我執行查詢它給錯誤,如:在2號線 ERROR: ORA-00932:不一致的數據類型:預期CHAR得到NUMBER

從我的邏輯查詢應該是這樣的:

select sum(case when val > 0 then val end) as pos_sum, 
     sum(case when val < 0 then val end) as neg_sum 
from t; 

謝謝