Me pregunto qué criterio estás usando para agruparlos. Supongo que siempre habrá valores NULOS y un número... porque eso coincide con el ejemplo, ¡pero más detalles serían mejores!
SELECT studentID, studentName, max(MathGrade), max(SciGrade) from vStudentGrade
group by studentID, studentName, MathGrade, SciGrade
Espero que esto te ayude o te guíe a una solución :)