Oracle:如何将NVL合并到这个完全加入?

时间:2014-04-21 15:12:22

标签: oracle join nvl

如何使用NVL在此代码的输出中用零替换空值?我需要零,所以我可以在这两列上添加

horse_wins + jockey_wins

如果只有一个值为null,它们总是总和为null。我已经读过NVL可以在这种情况下提供帮助,但实施起来很困难。

select
race_id,
horse_id,
horse_wins,
jockey_id,
jockey_wins,
horse_wins + jockey_wins
from
proj_entry a
FULL JOIN
tot_h_wins b
ON 
a.horse_id = b.horse
FULL JOIN
tot_j_wins c
ON
a.jockey_id = c.jockey
where 
race_id = 1
and
where
nvl(jockey_wins, 0);

1 个答案:

答案 0 :(得分:3)

select
race_id,
horse_id,
horse_wins,
jockey_id,
jockey_wins,
NVL(horse_wins, 0) + NVL(jockey_wins, 0) wins
from
proj_entry a
FULL JOIN
tot_h_wins b
ON 
a.horse_id = b.horse
FULL JOIN
tot_j_wins c
ON
a.jockey_id = c.jockey
where 
race_id = 1

如果要更改值的显示方式,则不要在where子句中使用NVL。 Where用于过滤返回的行。如果要更改其显示方式,请在select子句中使用它。