Хорошо, так как вы сказали SQL Server 2005, я покажу вам реализацию с использованием rownumber.
Предположения:
1.) Базовая группа должна быть Id. Учетная запись с идентификаторами 1 и 2 не должна находиться в одной строке.
Решение с пробными данными:
SELECT ID,
Max(Case When OrderCaluse = 0 Then Account Else NULL END) AS Account1,
Max(Case When OrderCaluse = 1 Then Account Else NULL END) AS Account2
FROM
(
Select ID,
Account,
(RowNum+1)/2 As GroupClause,
(RowNum+1)%2 as OrderCaluse
FROM
(
Select *,
ROW_NUMBER() Over (Partition by Id order by account) As RowNum
FRom
(
Select 1 as Id, 25 as Account
Union ALL
Select 1, 31
Union ALL
Select 1, 35
Union ALL
Select 1, 44
Union ALL
Select 1, 50
Union ALL
Select 1, 59
) AS UserAccount
) AS T
) AS T1
Group By Id,GroupClause
Результат:
1 25 31
1 35 44
1 50 59
Надеюсь, это поможет. Для использования просто удалите Внутреннюю временную таблицу UserAccount и используйте свою физическую таблицу.