Maison >base de données >tutoriel mysql >Comment puis-je faire pivoter dynamiquement les données dans SQL Server 2005 pour gérer un nombre inconnu de colonnes ?
Données pivot dynamiques utilisant SQL Server 2005
Dans SQL Server 2005, vous devrez peut-être convertir des données avec un nombre inconnu de colonnes au format pivot. Cet article explore ce défi et propose une solution utilisant la technologie SQL Server 2005.
Question :
Considérez l'ensemble de données donné dans lequel les devoirs et les notes des étudiants sont stockés. Le résultat souhaité est un tableau croisé dynamique montrant les notes de chaque étudiant pour tous les devoirs et à la fin la note totale. Il est essentiel que celui-ci soit dynamique pour s’adapter à un nombre variable d’emplois. De plus, le tri par date d’échéance des devoirs et l’exclusion des notes globales de la requête seraient également idéaux.
Solution (SQL dynamique) :
Bien que le SQL dynamique ne soit généralement pas recommandé, dans ce cas, il constitue la solution la plus pratique. Voici un exemple de script SQL dynamique qui génère un jeu de résultats pivoté :
<code class="language-sql">DECLARE @sql NVARCHAR(MAX) SET @sql = 'SELECT StudentName, ' + STUFF(( SELECT ',[' + AssignmentName + ']' FROM AssignmentNames FOR XML PATH('') ), 1, 1, '') + ' FROM Assignments PIVOT (SUM(Grade) FOR AssignmentName IN (' + STUFF(( SELECT ',' + AssignmentName FROM AssignmentNames FOR XML PATH('') ), 1, 1, '') + ')) AS PivotTable' -- 执行生成的SQL EXEC sp_executesql @sql</code>
Instructions :
Cette approche SQL dynamique offre une flexibilité dans la gestion des numéros de tâches changeants et le tri par dates limites de travail. Cependant, assurez-vous de revérifier le SQL généré dynamiquement pour vous assurer qu’il n’est pas vulnérable aux entrées malveillantes.
Alternative :
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!