Maison >base de données >tutoriel mysql >Comment puis-je faire pivoter des données T-SQL sans utiliser de fonctions d'agrégation ?

Comment puis-je faire pivoter des données T-SQL sans utiliser de fonctions d'agrégation ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-20 10:01:08633parcourir

How Can I Pivot T-SQL Data Without Using Aggregation Functions?

Pivotement des données T-SQL : une approche sans agrégation

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!

Déclaration:
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