Для создания таблицы и вставки некоторых значений
create table mastertable
(
id int,
Name varchar(20),
ParentID int,
Value varchar(50)
)
insert into mastertable values(86, 'Description1',83,'021541-sds2-45515')
insert into mastertable values(87, 'value1',83, '$247.56')
insert into mastertable values(90, 'Description3',83, '021541-sds2-45567')
insert into mastertable values(91,'value3',83, '$66.72')
insert into mastertable values(94, 'Description5',83, '021541-sd72-47715')
insert into mastertable values(95,'value5',83, '$57.11')
Теперь попробуйте следующий запрос:
with m1 as
(
SELECT *, RN = ROW_NUMBER() OVER (order by id) FROM mastertable
),
m2 as
(
SELECT *, RN = ROW_NUMBER() OVER (order by id) FROM mastertable
)
SELECT m1.id, m1.name, m1.parentid, m1.value as value1, m2.value as value2
FROM m1 left join m2
ON m1.RN = m2.RN-1
WHERE m1.RN%2 != 0
EDIT: Для m2 вместо SELECT * вы также можете использовать:
m2 as
(
SELECT id,value, RN = ROW_NUMBER() OVER (order by id) FROM mastertable
)