Maison > base de données > tutoriel mysql > Comment l'opérateur PIVOT de SQL Server peut-il transposer des lignes en colonnes ?

Comment l'opérateur PIVOT de SQL Server peut-il transposer des lignes en colonnes ?

Linda Hamilton
Libérer: 2024-12-17 13:49:11
original
204 Les gens l'ont consulté

How Can SQL Server's PIVOT Operator Transpose Rows into Columns?

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     |
Copier après la connexion

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     |
Copier après la connexion

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 )
Copier après la connexion

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!

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