Maison >base de données >tutoriel mysql >Comment puis-je convertir efficacement des colonnes en lignes dans SQL Server ?
Guide détaillé sur la conversion de colonnes dans SQL Server
Lorsque vous travaillez avec des tableaux contenant un grand nombre de colonnes de métriques, la conversion de ces colonnes en lignes peut être très utile à des fins d'analyse et de reporting. Cette transformation implique de restructurer les données pour créer de nouvelles tables avec un schéma différent.
Énoncé du problème
Considérez le schéma de table suivant :
<code>[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]</code>
L'objectif est de convertir ces colonnes de métriques en lignes, en créant un nouveau tableau avec le schéma suivant :
<code>[ID] [EntityId] [IndicatorName] [IndicatorValue]</code>
Solution utilisant UNPIVOT
Une solution élégante pour accomplir cette tâche consiste à utiliser la fonction UNPIVOT. La syntaxe de UNPIVOT est la suivante :
<code>UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))</code>
Dans cet exemple, la colonne non pivot représente la valeur de l'indicateur (par exemple, "Indicator1", "Indicator2", etc.), tandis que la colonne pivot représente le nom de la colonne lui-même. La requête suivante illustre comment utiliser UNPIVOT :
<code>select id, entityId, indicatorname, indicatorvalue from yourtable unpivot ( indicatorvalue for indicatorname in (Indicator1, Indicator2, Indicator3) ) unpiv;</code>
En exécutant cette requête, les colonnes de métriques seront converties en lignes et les noms et valeurs des métriques rempliront les nouvelles colonnes.
Alternatives
Outre UNPIVOT, il existe d'autres moyens de convertir des colonnes en lignes :
Le choix de la solution dépend des besoins spécifiques et de la version de SQL Server utilisée.
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!