Maison > base de données > tutoriel mysql > Comment pivoter dynamiquement les données dans SQL Server?

Comment pivoter dynamiquement les données dans SQL Server?

DDD
Libérer: 2025-01-25 18:52:11
original
211 Les gens l'ont consulté

How to Dynamically Pivot Data in SQL Server?

SQL Server Dynamic Perspective Query

Cet article présente comment convertir l'ensemble de données du format vertical au format horizontal. Ceci est généralement implémenté à l'aide du symbole informatique pivot.

Le code SQL suivant initialise l'ensemble de données dans une table temporaire appelée

. Dynamic SQL est utilisé pour construire une requête de pivot. Les variables

relient différentes catégories en chaînes où la virgule est séparée. temp Les variables construisent une requête de pivot réelle, emballée à la date et voir selon la catégorie. @cols @query

L'exécution de cette requête générera les résultats requis:
<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) 
            FROM temp c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT date, ' + @cols + ' from 
            (
                select date
                    , amount
                    , category
                from temp
           ) x
            pivot 
            (
                 max(amount)
                for category in (' + @cols + ')
            ) p '</code>
Copier après la connexion

Cette méthode dynamique permet à la catégorie selon les besoins sans modifier la structure de requête. N'oubliez pas de supprimer la table temporaire après utilisation pour éviter les problèmes de performances.
<code>日期                        ABC         DEF    GHI
2012-01-01 00:00:00.000     1000.00     NULL    NULL
2012-02-01 00:00:00.000     NULL        500.00  800.00
2012-02-10 00:00:00.000     NULL        700.00  NULL
2012-03-01 00:00:00.000     1100.00     NULL    NULL</code>
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal