挑战: MS Access 2010 缺少 SQL Server 2005 及更高版本中的 UNPIVOT 功能。本指南演示如何使用 Access 的内置 SQL 功能获得相同的结果。
场景:
想象一下这个表结构:
ID | A | B | C | Key 1 | Key 2 | Key 3 |
---|---|---|---|---|---|---|
1 | x | y | z | 3 | 199 | 452 |
2 | x | y | z | 57 | 234 | 452 |
目标是将其转换为未旋转的格式:
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 |
解决方案:
可以使用 Access SQL 查询中的一系列 UNION ALL
语句来复制 UNPIVOT 效果:
<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>
结果:
对示例表运行此查询会生成所需的逆透视记录集:
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 |
以上是如何在 MS Access 中复制 UNPIVOT 功能?的详细内容。更多信息请关注PHP中文网其他相关文章!