Heim >Datenbank >MySQL-Tutorial >Wie simuliere ich 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!