クエリの単一列の結果を4つの列に分割したいと思います。
サンプルソース:(Select [FirstName from User
)
ピーター
メアリー
ジョン
ティナ
カール
ジェーン
ビル
サラ
私はこのようになりたい:
Column1 Column2 Column3 Column4
Peter Mary John Tina
Carl Jane Bill Sarah
クエリの単一列の結果を4つの列に分割したいと思います。
サンプルソース:(Select [FirstName from User
)
ピーター
メアリー
ジョン
ティナ
カール
ジェーン
ビル
サラ
私はこのようになりたい:
Column1 Column2 Column3 Column4
Peter Mary John Tina
Carl Jane Bill Sarah
決定論的な結果を得るには、一意の列が必要ですが、ORDER BY
これらの線に沿ったものが機能するはずです。
;WITH T
AS (SELECT [FirstName],
( ROW_NUMBER() OVER (ORDER BY (SELECT 0)) - 1 ) / 4 AS Row,
( ROW_NUMBER() OVER (ORDER BY (SELECT 0)) - 1 ) % 4 AS Col
FROM [User])
SELECT [0] AS Column1,
[1] AS Column2,
[2] AS Column3,
[3] AS Column4
FROM T PIVOT (MAX(name) FOR Col IN ([0], [1], [2], [3])) P
ORDER BY Row
ここにはたくさんのオプションがあります。あなたのケースにより適したものを探してください: 値のリストから列を作成します
前のリンクはさらに多くの情報にリンクしています