Pivotement des données dans SQL Server 2000 : une explication détaillée
SQL Server 2000 fournit une fonctionnalité puissante appelée pivotement qui permet aux utilisateurs de transformer les données de un format basé sur les lignes vers un format basé sur les colonnes. Cela peut être utile pour les scénarios dans lesquels vous devez résumer les données sur plusieurs colonnes ou créer une vue matricielle des données.
Énoncé du problème :
Dans un cas particulier, un utilisateur dispose de deux tables :
L'utilisateur a besoin d'un ensemble de résultats qui fait pivoter la colonne MetaValue de la Table Meta Product basée sur la colonne MetaKey, avec les colonnes ProductId et Name de la table Products comme ligne en-têtes.
Solution optimale :
Pour réaliser cette transformation, vous pouvez utiliser la requête SQL suivante :
SELECT P.ProductId, P.Name , MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A , MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B , MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C FROM Products AS P JOIN ProductMeta AS PM ON PM.ProductId = P.ProductId GROUP BY P.ProductId, P.Name
Explication :
Remarque :
L'utilisation d'une clause GROUP BY est essentielle dans ce scénario pour garantir que les lignes sont correctement regroupées. Ne pas utiliser une clause GROUP BY entraînerait un résultat échelonné. De plus, chaque colonne non incluse dans la clause GROUP BY doit être enveloppée dans une fonction d'agrégation (dans ce cas, MIN()).
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!