私はSQLにテーブルを持っています
ユーザー | アカウント --+--------- 1 | 25 1 | 31 1 | 35 1 | 44 1 | 50 1 | 59
そして必要性を3つの列として出力します
1 | 25 | 31 1 | 35 | 44 1 | 50 | 59
私はSQLにテーブルを持っています
ユーザー | アカウント --+--------- 1 | 25 1 | 31 1 | 35 1 | 44 1 | 50 1 | 59
そして必要性を3つの列として出力します
1 | 25 | 31 1 | 35 | 44 1 | 50 | 59
わかりましたので、SQL Server 2005 と言ったように、rownumber を使用した実装を示します。
前提: 1.) 基本グループは Id である必要があります。ID 1 と ID 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 を削除して、物理テーブルを使用してください。