Вы можете использовать row_number
для нумерации таблицы в двух направлениях и объединить их вместе:
declare @t table (id int, name varchar(4))
insert @t values (1, 'AAA'), (2, 'BBB'), (3, 'CCC'), (4, 'DDD')
; with numbered as
(
select row_number() over (order by id) as rn1
, row_number() over (order by id desc) as rn2
, *
from @t
)
select t2.id
, t1.name
from numbered t1
join numbered t2
on t1.rn1 = t2.rn2
Это печатает:
id name
4 AAA
3 BBB
2 CCC
1 DDD