我使用的是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;
答案 0 :(得分:0)
我猜(因为缺少示例),您的想法是在旋转后显示结果中没有空值。如果是这样,您的查询(我猜)并不总是返回nature
值1和2。
在这种情况下NVL
运算符可以正常工作,但是你把它放在了错误的地方。这是生成NULL
的地方,因为找不到给定条件的行:
PIVOT ( sum(annulation)
如果您对sum
的热爱增强此 NVL
结果 - 我相信它会像您期望的那样有效。