Défi : MS Access 2010 ne dispose pas de la fonction UNPIVOT trouvée dans SQL Server 2005 et versions ultérieures. Ce guide montre comment obtenir le même résultat en utilisant les fonctionnalités SQL intégrées d'Access.
Scénario :
Imaginez cette structure de tableau :
ID | A | B | C | Key 1 | Key 2 | Key 3 |
---|---|---|---|---|---|---|
1 | x | y | z | 3 | 199 | 452 |
2 | x | y | z | 57 | 234 | 452 |
Le but est de le convertir dans un format non pivoté :
ID | A | B | C | Key |
---|---|---|---|---|
1 | x | y | z | 3 |
2 | x | y | z | 57 |
1 | x | y | z | 199 |
2 | x | y | z | 234 |
1 | x | y | z | 452 |
2 | x | y | z | 452 |
Solution :
L'effet UNPIVOT peut être répliqué à l'aide d'une série d'instructions UNION ALL
dans une requête Access SQL :
<code class="language-sql">SELECT ID, A, B, C, [Key 1] AS Key FROM tblUnpivotSource UNION ALL SELECT ID, A, B, C, [Key 2] AS Key FROM tblUnpivotSource UNION ALL SELECT ID, A, B, C, [Key 3] AS Key FROM tblUnpivotSource;</code>
Résultat :
L'exécution de cette requête sur l'exemple de table produit le jeu d'enregistrements non pivoté souhaité :
ID | A | B | C | Key |
---|---|---|---|---|
1 | x | y | z | 3 |
2 | x | y | z | 57 |
1 | x | y | z | 199 |
2 | x | y | z | 234 |
1 | x | y | z | 452 |
2 | x | y | z | 452 |
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!