Если у вас есть таблица чисел, вы можете присоединиться к ней, чтобы получить отдельные записи года и избежать использования курсора.Я просто сложил таблицу чисел с номером от 1965 до 968, но таблица чисел realife (которая также не будет временной таблицей, как показано ниже для примера, а будет жить в вашей схеме), вероятно, будет иметь несколько миллионов записей.полезно для большого сравнения.
create table #Numbers (Number int)
insert into #Numbers
select 1965
union
select 1966
union
select 1967
union
select 1968
create table #employees (name varchar (50), beginyear int, endyear int)
insert into #employees
select 'Dick', 1966, 1968
union all
select 'harry', 1965, 1967
union all
select 'tom', 1955, 1966
insert into EmployeeYears (Name, [Year])
select Name, n.number
from #Employees e
join #Numbers n on n.number between e.beginyear and e.endyear
order by name