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)
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;
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 |
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!