Maison > base de données > tutoriel mysql > Comment réaliser un pivotement dynamique des données tabulaires dans T-SQL ?

Comment réaliser un pivotement dynamique des données tabulaires dans T-SQL ?

Mary-Kate Olsen
Libérer: 2025-01-14 20:20:45
original
798 Les gens l'ont consulté

How to Achieve Dynamic Pivoting of Tabular Data in T-SQL?

Pivot dynamique en T-SQL

La conversion des données tabulaires dans un format plus concis est essentielle pour l'analyse des données et la génération de rapports. Une technique couramment utilisée est le pivotement, qui consiste à convertir des lignes en colonnes. Dans cet exemple, notre objectif est de faire pivoter les données d'un tableau avec une structure similaire à :

ItemID ColumnName Value
1 name Peter
1 phone 12345678
1 email [email protected]
2 name John
2 phone 87654321
2 email [email protected]
3 name Sarah
3 phone 55667788
3 email [email protected]

Convertir vers une structure plus conviviale :

ItemID name phone email
1 Peter 12345678 [email protected]
2 John 87654321 [email protected]
3 Sarah 55667788 [email protected]

Pour y parvenir en T-SQL à l'aide de pivots dynamiques, suivez ces étapes :

  1. Créer une liste de colonnes dynamique :

    <code class="language-sql"> DECLARE @cols NVARCHAR(2000)
     SELECT  @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT
                                      '],[' + t.ColumnName
                              FROM    #Table AS t
                              FOR XML PATH('')
                            ), 1, 2, '') + ']' </code>
    Copier après la connexion
  2. Créer une requête dynamique :

    <code class="language-sql"> DECLARE @query NVARCHAR(4000) 
     SET @query = N'SELECT ID,'+ @cols +' FROM 
     (SELECT t1.ID,t1.ColumnName , t1.Value FROM #Table AS t1) p 
     PIVOT (MAX([Value]) FOR ColumnName IN ( '+ @cols +' )) 
     AS pvt;' </code>
    Copier après la connexion
  3. Exécuter la requête :

    <code class="language-sql"> EXECUTE(@query)</code>
    Copier après la connexion

La requête générée fera pivoter dynamiquement les données, créant une structure de tableau plus compacte et plus facile à lire.

Cette approche fournit un mécanisme flexible pour faire pivoter les données, en particulier si les noms de colonnes sont dynamiques ou peuvent changer. Il permet une transformation efficace et automatisée des données, ce qui en fait un outil puissant pour une variété d'applications d'analyse de données et de reporting.

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