





Используйте агрегацию условный:
select Name,
max(case when Semester = 1 then GPA end) AS "semester1 GPA",
max(case when Semester = 2 then GPA end) AS "semester3 GPA"
from table t
where Semester in (1, 2)
group by Name;
Отлично. Спасибо.
Рассмотрите возможность обработки проблем отображения данных в коде уровня представления / уровня приложения, если это у вас есть (например, простой цикл PHP, действующий на упорядоченный массив).