当表,SQLPLUS中不存在数据时,如何不返回值0

时间:2017-03-31 15:50:20

标签: sql oracle sqlplus

我有两个表,表A和B,我正在计算表A中数据类型的出现次数,

    ENAME       SALES
    ---------- ----------
    Wilson          0
    Fox             1
    Wang            2
    Green           1
    Fox             0
    Phillips        2
    Loftus          0
    Smith           2
    Smith           3
    Wolf            2
    Jones           1
    Liu             0

当销售计数为0时,表B中根本不存在ename。

如何删除0计数?我试图让回报看起来像这样:

    ENAME       SALES
    ---------- ----------
    Wilson          
    Fox             1
    Wang            2
    Green           1
    Fox             
    Phillips        2
    Loftus          
    Smith           2
    Smith           3
    Wolf            2
    Jones           1
    Liu             

1 个答案:

答案 0 :(得分:3)

一种方法使用case,另一种方法使用nullif()

select ename, nullif(sales, 0) as sales
from t;

如果这是一个聚合查询:

select ename, nullif(count(*), 0) as sales
from t
group by ename;