Transposer des lignes en colonnes avec SQL Server Pivot ?
Dans SQL Server, l'opérateur PIVOT est un outil puissant pour réorganiser les données tabulaires à partir des lignes aux colonnes. Cela peut être particulièrement utile lorsque vous devez résumer des données sur plusieurs lignes pour un ensemble de colonnes donné.
Pour illustrer, considérons le tableau suivant :
| Name1 | Name2 | Value | |---|---|---| | A | P1 | 1 | | A | P2 | 1 | | A | P3 | 2 | | B | P1 | 3 | | B | P2 | 1 | | B | P4 | 1 |
Supposons que nous souhaitions transformer ceci données au format suivant :
| | A | B | |---|---|---| | P1 | 1 | 4 | | P2 | 1 | 1 | | P3 | 2 | NULL | | P4 | NULL | 1 |
Pour réaliser cette transformation, nous pouvons utiliser l'opérateur PIVOT comme suit :
DECLARE @cols VARCHAR(1000) DECLARE @sqlquery VARCHAR(2000) SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1]) FROM myTable FOR XML PATH('') ), 1, 1, '') SET @sqlquery = 'SELECT * FROM (SELECT Name2, Name1, Value FROM myTable ) base PIVOT (Sum(Value) FOR [Name1] IN (' + @cols + ')) AS finalpivot' EXECUTE ( @sqlquery )
En assemblant dynamiquement la requête, cette méthode nous permet de faire pivoter les données avec différents ensembles de colonnes, offrant une solution flexible et évolutive.
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!