0
Je table sql commerequête Nombre dans sql
User | Account -----+--------- 1 | 25 1 | 31 1 | 35 1 | 44 1 | 50 1 | 59
et de sortie ont besoin en tant que trois colonnes
1 | 25 | 31 1 | 35 | 44 1 | 50 | 59
Je table sql commerequête Nombre dans sql
User | Account -----+--------- 1 | 25 1 | 31 1 | 35 1 | 44 1 | 50 1 | 59
et de sortie ont besoin en tant que trois colonnes
1 | 25 | 31 1 | 35 | 44 1 | 50 | 59
Ok, alors que u dit sql server 2005, je vais vous montrer la mise en œuvre en utilisant rownumber. Hypothèses: 1.) Le groupe de base doit être Id. Le compte de ID 1 et ID 2 ne doit pas être dans la même rangée.
Solution avec les données 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
Résultat:
1 25 31
1 35 44
1 50 59
Hope it helps. Pour votre utilisation, supprimez simplement la table temporaire Inner UserAccount et utilisez votre table physique.
Vous voulez dire que vous avez besoin de deux comptes dans chaque rangée? – Kangkan
oui j'ai besoin de deux comptes dans chaque ligne – Nisha
Quelle version de SQL Server utilisez-vous? Serveur SQL 2000, 2005 ou 2008 –