Guide en profondeur de la conversion de la colonne dans SQL Server
Lors du traitement des tables contenant un grand nombre de colonnes métriques, la conversion de ces colonnes en lignes est très bénéfique à des fins d'analyse et de déclaration. Cette transformation implique de reconstruire les données pour créer de nouvelles tables avec différents schémas.
instruction Problème
Considérez la structure de table suivante:
[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]
Le but est de convertir ces colonnes métriques en lignes, créant ainsi une nouvelle table avec le schéma suivant:
[ID] [EntityId] [IndicatorName] [IndicatorValue]
]
Solution à l'aide de Univot
Une solution élégante pour accomplir cette tâche consiste à profiter de la fonction Univot. La syntaxe de Univot est la suivante:
UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))
Dans cet exemple, la colonne Univot représente la valeur de l'indicateur (par exemple, "Indicator1", "Indicator2, etc.), et la colonne Pivot représente le nom de la colonne lui-même. La requête suivante illustre comment utiliser Univot:
select id, entityId,
indicatorname,
indicatorvalue
from yourtable
unpivot
(
indicatorvalue
for indicatorname in (Indicator1, Indicator2, Indicator3)
) unpiv;
En effectuant cette requête, la colonne métrique sera convertie en lignes et le nom et la valeur métriques seront remplis avec la nouvelle colonne.
alternatives
En plus de Univot, il existe d'autres façons de convertir les colonnes en lignes:
Le choix d'une solution dépend des besoins spécifiques et de la version de SQL Server utilisée.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3