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
Mary-Kate Olsenoriginal
2025-01-14 20:20:45799parcourir

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>
  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>
  3. Exécuter la requête :

    <code class="language-sql"> EXECUTE(@query)</code>

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!

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