Вы можете использовать функцию row_number () для нумерации каждой итерации (задания) одного и того же человека. С этим номером вы можете вернуть выбор их первой итерации и присоединиться к ним во второй итерации .... или даже присоединиться к третьей, четвертой, ... итерации.
with cte as (
select name, job1, Unit1_Level1, Unit1_Level2,
row_number() over (partition by name order by job1 desc) as iteration
from MyTable
)
select i1.name, i1.job1, i1.Unit1_Level1, i1.Unit1_Level2,
i2.job1 as job2, i2.Unit1_Level1 as Unit2_Level1, i2.Unit1_Level2 as Unit2_Level2,
i3.job1 as job3, i3.Unit1_Level1 as Unit3_Level1, i3.Unit1_Level2 as Unit3_Level2
from cte as i1
left join cte as i2 on i2.name = i1.name and i2.iteration = 2
left join cte as i3 on i3.name = i1.name and i3.iteration = 3
where i1.iteration = 1
PS: У вас нет ' Я указал, в каком порядке вы хотите вернуть задания одного и того же человека, поэтому я использовал job1 des c, чтобы вернуть их в качестве образцов данных: первый учитель и второй персонал.