ホームページ >データベース >mysql チュートリアル >SQL Server の PIVOT 演算子はどのように行を列に転置できますか?

SQL Server の PIVOT 演算子はどのように行を列に転置できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 13:49:11207ブラウズ

How Can SQL Server's PIVOT Operator Transpose Rows into Columns?

SQL Server ピボットを使用して行を列に転置しますか?

SQL Server では、PIVOT 演算子は行から表形式のデータを再編成するための強力なツールです列に。これは、特定の列セットの複数の行にわたるデータを要約する必要がある場合に特に便利です。

説明のために、次の表を考えてみましょう。

| Name1 | Name2 | Value |
|---|---|---|
| A     | P1     | 1     |
| A     | P2     | 1     |
| A     | P3     | 2     |
| B     | P1     | 3     |
| B     | P2     | 1     |
| B     | P4     | 1     |

これを変換するとします。データを次の形式に変換します:

|       | A     | B     |
|---|---|---|
| P1     | 1     | 4     |
| P2     | 1     | 1     |
| P3     | 2     | NULL  |
| P4     | NULL  | 1     |

この変換を実現するには、PIVOT 演算子を次のように利用できます。

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

このメソッドでは、クエリを動的に組み立てることにより、さまざまな列のセットでデータをピボットすることができ、柔軟でスケーラブルなソリューションを提供します。

以上がSQL Server の PIVOT 演算子はどのように行を列に転置できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。