Maison >base de données >tutoriel mysql >Comment simuler UNPIVOT dans Microsoft Access 2010 ?

Comment simuler UNPIVOT dans Microsoft Access 2010 ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-11 16:16:421057parcourir

How to Simulate UNPIVOT in Microsoft Access 2010?

Émulation d'UNPIVOT dans Access 2010

MS SQL Server 2005 prend en charge la fonction UNPIVOT, mais pas Access 2010. Comment utiliser les propres fonctions d'Access pour obtenir des effets similaires ? Par exemple, disons que nous avons une table :

<code><h2>ID | A | B | C | Key 1 | Key 2 | Key 3</h2><p>1 | x | y | z |     3 |   199 |   452<br></br>2 | x | y | z |    57 |   234 |   452<br></br></p></code>

Nous voulons convertir ceci en :

<code><h2>ID | A | B | C | Key</h2><p>1 | x | y | z |   3<br></br>2 | x | y | z |  57<br></br>1 | x | y | z | 199<br></br>2 | x | y | z | 234<br></br>2 | x | y | z | 452<br></br></p></code>

Où Key 452 est une valeur répétée. Actuellement, je convertis en OLEDB/ATL C. Bien que ce soit assez rapide, je suis toujours curieux de savoir comment le faire plus efficacement dans Access 2010. Quelle est l’instruction SQL la plus efficace ?

Solution :

Vous pouvez utiliser la requête SQL suivante :

<code class="language-sql">SELECT ID, A, B, C, [Key 1] AS key_field
FROM tblUnpivotSource
UNION ALL
SELECT ID, A, B, C, [Key 2] AS key_field
FROM tblUnpivotSource
UNION ALL
SELECT ID, A, B, C, [Key 3] AS key_field
FROM tblUnpivotSource;</code>

...Après avoir exécuté cette requête (en supposant que votre exemple de table s'appelle tblUnpivotSource), vous obtiendrez l'ensemble de résultats suivant :

<code><br></br>ID | A | B | C | key_field<hr></hr><p>1 | x | y | z |         3<br></br>2 | x | y | z |        57<br></br>1 | x | y | z |       199<br></br>2 | x | y | z |       234<br></br>1 | x | y | z |       452<br></br>2 | x | y | z |       452<br></br></p></code>

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