Oracle中的NVL功能

时间:2015-03-06 09:45:09

标签: sql oracle

我使用的是Oracle,我希望将空值替换为0但不起作用。这是我的问题:

with pivot_data as (
  select (NVL(d.annulation,0)) as annulation ,
    d.id_cc1_annulation as nature ,
    t.mois as mois
  from datamart_cnss d , ref_temps t 
  where t.id_temps = d.id_temps
)
select * from pivot_data
PIVOT ( sum(annulation)
        for nature in (2 as debit ,1 as redit) 
) 
order by mois asc;

1 个答案:

答案 0 :(得分:0)

我猜(因为缺少示例),您的想法是在旋转后显示结果中没有空值。如果是这样,您的查询(我猜)并不总是返回nature值1和2。

在这种情况下NVL运算符可以正常工作,但是你把它放在了错误的地方。这是生成NULL的地方,因为找不到给定条件的行:

PIVOT ( sum(annulation)

如果您对sum的热爱增强 NVL结果 - 我相信它会像您期望的那样有效。