I want to get all distinct value from two tables after join. Tow tables are.. Table: Student
Roll Name
1 Anis
2 Badol
3 Chaity
Table:Exam
Roll Quiz Mid Final
1 15 20 40
3 25 20 42
4 10 12 8
I want to get that output
Roll Name Mark
3 Chaity 87
1 Anis 75
4 Unknown 30
2 Badol 0
where name in null that replaced by 'Unknoun' and mark is null that replaced by '0'
I tried this code
select s.roll, name, (quiz+mid+final) as Mark
from student s
full outer join exam e on
s.roll=e.roll
and get that output..
roll name mark
1 anis 75
2 badol NULL
3 chaity 87
NULL NULL 30
(sorry for the bad English)
答案 0 :(得分:1)
One method uses full outer join
and coalesce()
:
select coalesce(t1.roll, t2.roll) as roll,
coalesce(t1.name, 'Unknown') as name,
(coalesce(quiz, 0) + coalesce(mid, 0) + coalesce(final, 0)) as mark
from t1 full outer join
t2
on t1.roll = t2.roll
order by mark desc;