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

Comment faire pivoter efficacement plusieurs colonnes dans T-SQL ?

Linda Hamilton
Libérer: 2025-01-05 00:54:43
original
817 Les gens l'ont consulté

How to Pivot Multiple Columns in T-SQL Efficiently?

Comment faire pivoter plusieurs colonnes dans TSQL

Dans TSQL, faire pivoter un tableau implique de réorganiser les lignes en colonnes. Cependant, lorsqu'il s'agit de plusieurs colonnes, il est essentiel de conserver toutes les étiquettes.

Données non pivotantes

Pour commencer, puisque nous avons plusieurs colonnes de données, il est recommandé de les annuler. en une seule colonne. Ceci peut être réalisé à l'aide de la fonction UNPIVOT ou de la méthode CROSS APPLY, selon la version de SQL Server. La syntaxe pour annuler le pivotement serait :

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

Effectuer le pivotement

Une fois que les données ne sont plus pivotées, vous pouvez appliquer la fonction PIVOT pour réorganiser les colonnes comme vous le souhaitez. La syntaxe serait :

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

Résultat

Cela produira le résultat souhaité :

|  RATIO | CURRENT RATIO | GEARING RATIO | PERFORMANCE RATIO |     TOTAL |
|--------|---------------|---------------|-------------------|-----------|
|  grade |          Good |          Good |      Satisfactory |      Good |
| result |       1.29400 |       0.33840 |           0.04270 |    (null) |
|  score |      60.00000 |      70.00000 |          50.00000 | 180.00000 |
Copier après la connexion

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