ホームページ >データベース >mysql チュートリアル >T-SQL テーブルの複数の列をピボットする方法

T-SQL テーブルの複数の列をピボットする方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-04 21:45:41959ブラウズ

How to Pivot Multiple Columns in a T-SQL Table?

複数列の T-SQL テーブルのピボット

T-SQL では、データのピボットはテーブル構造を変換して表示するための便利な手法です。データが異なります。ピボット処理に複数の列の処理が含まれる場合、データのピボット解除が有益であることが判明する可能性があります。

次のテーブルについて考えてみましょう:

RATIO RESULT SCORE GRADE
Current Ratio 1.294 60 Good
Gearing Ratio 0.3384 70 Good
Performance Ratio 0.0427 50 Satisfactory
TOTAL NULL 180 Good

目標は、このテーブルをピボットして次の望ましい結果を取得することです:

RATIO Current Ratio Gearing Ratio Performance Ratio TOTAL
Result 1.294 0.3384 0.0427 NULL
Score 60 70 50 180
Grade Good Good Satisfactory Good

これを達成するには、次の手順に従います。手順:

  1. 結果、スコア、成績列のピボット解除:

    UNPIVOT 関数または CROSS APPLY を使用してピボットを解除します。データ:

    SELECT RATIO, COL, VALUE
    FROM GRAND_TOTALS
    CROSS APPLY
    (
       SELECT 'RESULT', CAST(RESULT AS VARCHAR(10)) UNION ALL
       SELECT 'SCORE', CAST(SCORE AS VARCHAR(10)) UNION ALL
       SELECT 'GRADE', GRADE
    ) C(COL, VALUE)
  2. ピボットされていないデータをピボットする:

    ピボットされていないデータに PIVOT 関数を適用する:

    SELECT RATIO = COL,
       [CURRENT RATIO], [GEARING RATIO], [PERFORMANCE RATIO], TOTAL
    FROM
    (
       SELECT RATIO, COL, VALUE
       FROM GRAND_TOTALS
       CROSS APPLY
       (
          SELECT 'RESULT', CAST(RESULT AS VARCHAR(10)) UNION ALL
          SELECT 'SCORE', CAST(SCORE AS VARCHAR(10)) UNION ALL
          SELECT 'GRADE', GRADE
       ) C(COL, VALUE)
    ) D
    PIVOT
    (
       MAX(VALUE)
       FOR RATIO IN ([CURRENT RATIO], [GEARING RATIO], [PERFORMANCE RATIO], TOTAL)
    ) PIV;

これにより、望ましい結果が得られます。ピボットされた複数の列を含むテーブルを提供します。

以上がT-SQL テーブルの複数の列をピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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