130 votes

Exemples PIVOT SQL Server?

Essayer de trouver des exemples simples de SQL Server PIVOT. La plupart des exemples que j'ai trouvés impliquent de compter ou de résumer des nombres. Je veux juste faire pivoter certaines données de chaîne. Par exemple, j'ai une requête renvoyant les éléments suivants.

 Action1 VIEW  
Action1 EDIT  
Action2 VIEW  
Action3 VIEW  
Action3 EDIT  
 

J'aimerais utiliser PIVOT (si possible) pour obtenir les résultats suivants:

 Action1 VIEW EDIT  
Action2 VIEW NULL  
Action3 VIEW EDIT  
 

Est-ce même possible avec la fonctionnalité PIVOT?

167voto

John Points 1446

Rappelez-vous que la fonction d'agrégation MAX fonctionnera sur le texte ainsi que sur les nombres. Cette requête nécessite uniquement que la table soit analysée une fois.

 SELECT Action,
       MAX( CASE data WHEN 'View' THEN data ELSE '' END ) ViewCol, 
       MAX( CASE data WHEN 'Edit' THEN data ELSE '' END ) EditCol
 FROM t
 GROUP BY Action
 

55voto

mxasim Points 656

Configuration de la table :

Votre table :``

Your table

Requête sans utiliser de PIVOT :

Query using PIVOT :

Les deux résultats de requêtes :
enter image description here

53voto

Miles D Points 3583

Si vous souhaitez spécifiquement utiliser la fonction SQL Server PIVOT, cela devrait fonctionner, en supposant que vos deux colonnes d'origine s'appellent act et cmd. (Pas si joli à regarder cependant.)

 SELECT act AS 'Action', [View] as 'View', [Edit] as 'Edit'
FROM (
    SELECT act, cmd FROM data
) AS src
PIVOT (
    MAX(cmd) FOR cmd IN ([View], [Edit])
) AS pvt
 

10voto

Pato Points 151

8voto

SQLMenace Points 68670

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X