2015-07-10 39 views
0

我有一个像如何抑制空单排

Name Sal Bonus 
ABC 400 null 
ABC null 5 

如何使它单列并取出空数据

Name Sal Bonus 
ABC 400 5 

请提出一个Oracle表。使用oracle sql。

+0

如果有另一个ABC一行,萨尔= 250? – jarlh

回答

0

如果您只有两行,则可以使用group by子句。并在选择语句内求和值。

SELECT T.NAME,SUM(NVL(T.SAL,0))AS Sal,SUM(NVL(T.SAL,0)) AS Bonus 
FROM TABLE t 
GROUP BY T.NAME 

下面的结果:

Name Sal Bonus 
ABC 400 5 
+0

你真的需要这些NVL吗? – jarlh

+0

事实上,在这种情况下,您可以在不使用nvl()函数的情况下执行此操作。我不确定group by子句是否忽略空值。这就是为什么我以这种方式回答。我试过没有NVL()函数,我看到空值被忽略。 –

0

选择名称,MAX(SAL),MAX(奖金) 从表 组的名字