ホームページ >データベース >mysql チュートリアル >PIVOT 演算子を使用して SQL Server で列をピボットおよび連結する方法
SQL Server のピボット テーブルと列の連結
指定された SQL Server データベースには、ID、TYPE、SUBTYPE、COUNT、および MONTH のレコードが含まれています列。目標は、このデータを、TYPE と SUBTYPE が新しい列に連結され、一致する ID と MONTH 値に対して COUNT が合計されるピボット テーブルに変換することです。
これを実現するために、SQL Server は動的に PIVOT 演算子を提供します。指定された値に基づいて列を生成します。 PIVOT を使用してこの問題に対処する方法は次のとおりです。
DECLARE @sql AS VARCHAR(MAX); DECLARE @pivot_list AS VARCHAR(MAX); DECLARE @select_list AS VARCHAR(MAX); SELECT @pivot_list = COALESCE(@pivot_list + ', ', '') + '[' + PIVOT_CODE + ']', @select_list = COALESCE(@select_list + ', ', '') + 'ISNULL([' + PIVOT_CODE + '], 0) AS [' + PIVOT_CODE + ']' FROM ( SELECT DISTINCT [TYPE] + '_' + SUBTYPE AS PIVOT_CODE FROM TableName ) AS PIVOT_CODES; SET @sql = ';WITH p AS ( SELECT ID, [MONTH], [TYPE] + ''_'' + SUBTYPE AS PIVOT_CODE, SUM([COUNT]) AS [COUNT] FROM TableName GROUP BY ID, [MONTH], [TYPE] + ''_'' + SUBTYPE ) SELECT ID, [MONTH], ' + @select_list + ' FROM p PIVOT ( SUM([COUNT]) FOR PIVOT_CODE IN ( ' + @pivot_list + ' ) ) AS pvt'; EXEC (@sql);
このコードは、必要な列リストを動的に生成し、PIVOT 演算子を使用してピボット テーブルを作成します。結果の出力は、連結された TYPE 列と SUBTYPE 列、および合計された COUNT 値を含む目的の形式になります。
以上がPIVOT 演算子を使用して SQL Server で列をピボットおよび連結する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。