Maison >base de données >tutoriel mysql >Comment puis-je faire pivoter dynamiquement plusieurs colonnes dans SQL Server ?

Comment puis-je faire pivoter dynamiquement plusieurs colonnes dans SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 01:42:40870parcourir

How Can I Dynamically Pivot Multiple Columns in SQL Server?

Pivot dynamique avec plusieurs colonnes dans SQL Server

Dans SQL Server, le pivotement des données vous permet de transposer des lignes en colonnes, ce qui permet des données plus intuitives analyse. Lorsque vous traitez plusieurs colonnes, l'utilisation d'une approche dynamique peut permettre de modifier les noms ou les valeurs des colonnes.

Données non pivotantes

Pour faire pivoter dynamiquement des données avec plusieurs colonnes, commencez par ne pas pivoter les colonnes pertinentes en utilisant soit la fonction UNPIVOT, soit CROSS APPLY. Ce processus transforme plusieurs colonnes en lignes, ce qui les rend plus faciles à manipuler.

Fonction PIVOT dynamique

Une fois le pivotement rétabli, vous pouvez utiliser la fonction PIVOT pour créer le tableau croisé dynamique. Cependant, les noms de colonnes de la fonction PIVOT doivent s'aligner sur les données non pivotées. Pour y parvenir de manière dynamique, concaténez les valeurs des colonnes avec leurs métadonnées respectives en suivant les étapes suivantes :

  1. Sélectionnez les colonnes à faire pivoter et spécifiez leurs noms concaténés dans la variable @cols.
  2. Construisez la requête dynamique dans la variable @query en incorporant les noms de colonnes concaténés.
  3. Utilisez sp_executesql pour exécuter la requête dynamique Requête SQL et obtenez le résultat pivoté.

Exemple

Considérez l'exemple de tableau suivant avec les colonnes Année, Type, Total et Volume :

ID YEAR TYPE TOTAL VOLUME
DD1 2008 A 1000 10
DD1 2008 B 2000 20
DD1 2008 C 3000 30

En utilisant l'approche pivot dynamique, vous pouvez créer un tableau croisé dynamique avec les éléments suivants structure :

ID 2008_A_Total 2008_A_Volume 2008_B_Total 2008_B_Volume 2008_C_Total 2008_C_Volume
DD1 1000 10 2000 20 3000 30

En combinant des techniques de pivotement dynamique et sans pivotement, vous pouvez transformer et analyser efficacement les données avec différentes colonnes dans SQL Server.

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!

Déclaration:
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