2014-10-30 89 views
0

標題不會使我的問題出現claryifying,但這是我可以如何描述它。更改sql查詢結果的位置

我有一個查詢,其返回以下結果:

enter image description here

,我想知道是否有是減少來自三個線的數量到一個具有所有三個沒有空值(一個方式400,1000和21820在一行)與宴會作爲描述。

謝謝您的閱讀。

PS:這只是捕獲了查詢結果的一部分,並且有很多重複的行。如果它會有幫助,我可以發佈我的查詢。我使用了一些選擇的情況下有..

編輯:

謝謝你們,但我解決了主查詢的結果複製到另外一個輸入和添加不同與和條款

回答

0

最後在Oracle中,你可以使用「當」 如:

SELECT 
DESCRIPTION, 
CASE WHEN SUMPRICE1 IS NULL THEN 
    CASE WHEN SUMPRICE2 IS NULL THEN 
     CASE WHEN SUMPRICE3 IS NULL THEN 
      0 
     ELSE SUMPRICE3 END 
    ELSE SUMPRICE2 END 
ELSE SUMPRICE1 END AS SUMPRICE 
FROM MY_TABLE 
GROUP BY DESCRIPTION, SUMPRICE 

當然,這只是useble如果有列的靜態數量。

編輯:我想我不明白的問題,但是,如果你不希望合併的列,您可以使用:

SELECT DESCRIPTION, 
MAX(SUMPRICE1) AS SUMPRICE1, 
MAX(SUMPRICE2) AS SUMPRICE2, 
MAX(SUMPRICEN) AS SUMPRICEN 
FROM MY_TABLE 
GROUP BY DESCRIPTION 

或者您可以使用的情況下,以避免在任何行的情況下爲空值不具有值:

SELECT DESCRIPTION, 
CASE WHEN MAX(SUMPRICE1) IS NULL THEN 0 ELSE WHEN MAX(SUMPRICE1) END AS SUMPRICE1, 
CASE WHEN MAX(SUMPRICE2) IS NULL THEN 0 ELSE WHEN MAX(SUMPRICE2) END AS SUMPRICE2, 
CASE WHEN MAX(SUMPRICEN) IS NULL THEN 0 ELSE WHEN MAX(SUMPRICEN) END AS SUMPRICEN 
FROM MY_TABLE 
GROUP BY DESCRIPTION 
1
SELECT description, MAX(number1) AS number1, MAX(number2) AS number2) 
FROM myTable 
GROUP BY description