首頁 >資料庫 >mysql教程 >如何透視 T-SQL 表中的多個欄位?

如何透視 T-SQL 表中的多個欄位?

Linda Hamilton
Linda Hamilton原創
2025-01-04 21:45:41982瀏覽

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逆透視data:

    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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn