La transformation des données nécessite souvent un pivotement, généralement réalisé à l'aide de fonctions d'agrégation. Cependant, le pivotement sans agrégation est également possible.
Considérons un tableau où chaque ligne représente un client, y compris un CustomerID, un DBColumnName et les données correspondantes. L'objectif est de faire pivoter ces données, en organisant les données de chaque client dans des colonnes distinctes en fonction de leur DBColumnName.
<code class="language-sql">SELECT CustomerID, MIN(CASE WHEN DBColumnName = 'FirstName' THEN Data END) AS FirstName, MIN(CASE WHEN DBColumnName = 'MiddleName' THEN Data END) AS MiddleName, MIN(CASE WHEN DBColumnName = 'LastName' THEN Data END) AS LastName, MIN(CASE WHEN DBColumnName = 'Date' THEN Data END) AS Date FROM table GROUP BY CustomerID;</code>
Cette requête T-SQL utilise une logique conditionnelle (instructions CASE) pour sélectionner des données en fonction de DBColumnName. La fonction MIN()
garantit qu'une seule valeur est sélectionnée pour la colonne de chaque client. Cela fait pivoter efficacement les données sans recourir à l'agrégation au sens traditionnel, en organisant les attributs de chaque client dans des colonnes distinctes. Cette méthode évite les problèmes potentiels associés à l'agrégation lorsqu'il s'agit de données non numériques.
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!