0
У меня есть таблица в SQL, какКоличество запросов в SQL
User | Account -----+--------- 1 | 25 1 | 31 1 | 35 1 | 44 1 | 50 1 | 59
и выходе необходимо в виде трех колонок
1 | 25 | 31 1 | 35 | 44 1 | 50 | 59
У меня есть таблица в SQL, какКоличество запросов в SQL
User | Account -----+--------- 1 | 25 1 | 31 1 | 35 1 | 44 1 | 50 1 | 59
и выходе необходимо в виде трех колонок
1 | 25 | 31 1 | 35 | 44 1 | 50 | 59
Ok, так как у сказал SQL Server 2005, я покажу вам реализацию используя рябину.
Допущения: 1.) Базовая группа должна быть Id. Учет ID 1 и ID 2 не должен находиться в одной строке.
Решения с Mock данными:
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
Надеется, что это помогает. Для вашего использования просто удалите Iner temp table UserAccount и используйте свою физическую таблицу.
Вы имеете в виду, вам нужно иметь два счета в каждой строке? – Kangkan
да мне нужна две учетные записи в каждой строке – Nisha
Какую версию SQL Server вы используете? SQL Server 2000, 2005 или 2008 –