ホームページ > データベース > mysql チュートリアル > PIVOT 演算子を使用して SQL Server で列をピボットおよび連結する方法

PIVOT 演算子を使用して SQL Server で列をピボットおよび連結する方法

Mary-Kate Olsen
リリース: 2025-01-01 12:23:13
オリジナル
733 人が閲覧しました

How to Pivot and Concatenate Columns in SQL Server Using the PIVOT Operator?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート