5

クエリの単一列の結果を4つの列に分割したいと思います。

サンプルソース:(Select [FirstName from User
ピーター
メアリー
ジョン
ティナ
カール
ジェーン
ビル
サラ

私はこのようになりたい:

Column1   Column2   Column3   Column4  
Peter     Mary      John      Tina  
Carl      Jane      Bill      Sarah
4

2 に答える 2

8

決定論的な結果を得るには、一意の列が必要ですが、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
于 2012-07-09T08:43:33.483 に答える
1

ここにはたくさんのオプションがあります。あなたのケースにより適したものを探してください: 値のリストから列を作成します

前のリンクはさらに多くの情報にリンクしています

于 2012-07-09T08:26:48.507 に答える