Maison > base de données > tutoriel mysql > Comment faire pivoter plusieurs colonnes dans une table T-SQL ?

Comment faire pivoter plusieurs colonnes dans une table T-SQL ?

Linda Hamilton
Libérer: 2025-01-04 21:45:41
original
984 Les gens l'ont consulté

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

Tableaux croisés T-SQL pour plusieurs colonnes

Dans T-SQL, le pivotement des données peut être une technique utile pour transformer les structures de table afin de présenter données différemment. Lorsque le pivotement implique la gestion de plusieurs colonnes, annuler le pivotement des données peut s'avérer bénéfique.

Considérez le tableau suivant :

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

Le but est de faire pivoter ce tableau pour obtenir le résultat souhaité suivant :

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

Pour y parvenir, nous pouvons suivre ces étapes :

  1. Annuler le pivotement des colonnes de résultats, de scores et de notes :

    Utilisez la fonction UNPIVOT ou CROSS APPLY pour annuler le pivotement des données :

    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)
    Copier après la connexion
  2. Pivoter le non-pivoté Données :

    Appliquez la fonction PIVOT aux données non pivotées :

    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;
    Copier après la connexion

Cela donnera le résultat souhaité, en fournissant un tableau avec plusieurs colonnes pivotées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal