ホームページ >データベース >mysql チュートリアル >SQL Serverで複数の列を持つテーブルを転置する方法は?
SQL Server の複数列ピボット メソッド
テーブルを転置形式に変換すると、さまざまな状況で役立ちます。この記事では、Microsoft SQL Server で複数の列 (A、B など) を含むテーブルを転置する方法に焦点を当てます。
UNPIVOT と PIVOT を使用したデータのピボット
テーブルを転置するには、UNPIVOT 関数と PIVOT 関数を一緒に使用できます。
例は次のとおりです:
<code class="language-sql">select * from ( select day, col, value from yourtable unpivot ( value for col in (A, B) ) unpiv ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
SQL Server 2008 以降の CROSS APPLY メソッドと VALUES メソッド
SQL Server 2008 以降の場合は、CROSS APPLY と VALUES を組み合わせてデータを解凍することもできます。
<code class="language-sql">select * from ( select day, col, value from yourtable cross apply ( values ('A', ACalls),('B', BCalls) ) c (col, value) ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
クエリに適用
現在のクエリの結果を転置したい場合は、同様の方法を使用できます:
<code class="language-sql">select * from ( select LEFT(datename(dw,datetime),3) as DateWeek, col, value from DataTable cross apply ( values ('A', ACalls), ('B', BCalls) ) c (col, value) ) src pivot ( sum(value) for dateweek in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
これにより、ACalls 列と BCalls 列が行に転置され、曜日ごと (月曜日、火曜日など) の列ヘッダーが作成されます。
以上がSQL Serverで複数の列を持つテーブルを転置する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。