Oracle: как включить NVL в это ПОЛНОЕ соединение?

Как я могу использовать NVL для замены нулевых значений нулями в выводе этого кода? Мне нужны нули, чтобы я мог выполнить сложение этих двух столбцов.

horse_wins + jockey_wins

На данный момент они всегда суммируются с нулевым значением, если хотя бы одно из значений равно нулю. Я читал, что 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);

person COOLBEANS    schedule 21.04.2014    source источник


Ответы (1)


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

Вы не используете NVL в предложении where, когда хотите изменить способ отображения значения. Where предназначен для фильтрации возвращаемых строк. Если вы хотите изменить способ его отображения, используйте его в предложении select.

person mason    schedule 21.04.2014