Heim >Datenbank >MySQL-Tutorial >Wie simuliere ich UNPIVOT in Microsoft Access 2010?

Wie simuliere ich UNPIVOT in Microsoft Access 2010?

Linda Hamilton
Linda HamiltonOriginal
2025-01-11 16:16:42979Durchsuche

How to Simulate UNPIVOT in Microsoft Access 2010?

Emulation von UNPIVOT in Access 2010

MS SQL Server 2005 unterstützt die UNPIVOT-Funktion, Access 2010 jedoch nicht. Wie kann man mit Access-eigenen Funktionen ähnliche Effekte erzielen? Nehmen wir zum Beispiel an, wir haben eine Tabelle:

<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>

Wir wollen dies umwandeln in:

<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>

Wobei Schlüssel 452 ein wiederholter Wert ist. Derzeit konvertiere ich in OLEDB/ATL C. Obwohl es schnell genug ist, bin ich dennoch neugierig, wie ich es in Access 2010 effizienter machen kann. Was ist die effizienteste SQL-Anweisung?

Lösung:

Sie können die folgende SQL-Abfrage verwenden:

<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>

...Nachdem Sie diese Abfrage ausgeführt haben (vorausgesetzt, Ihre Beispieltabelle heißt tblUnpivotSource), erhalten Sie die folgende Ergebnismenge:

<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>

Das obige ist der detaillierte Inhalt vonWie simuliere ich UNPIVOT in Microsoft Access 2010?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn