2014-10-30 93 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