Meniru UNPIVOT dalam Access 2010
MS SQL Server 2005 menyokong fungsi UNPIVOT, tetapi Access 2010 tidak. Bagaimana untuk menggunakan fungsi Access sendiri untuk mencapai kesan yang sama? Sebagai contoh, katakan kita mempunyai jadual:
<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>
Kami mahu menukar ini kepada:
<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>
Di mana Kunci 452 ialah nilai berulang. Pada masa ini saya sedang menukar dalam OLEDB/ATL C. Walaupun ia cukup pantas, saya masih ingin tahu bagaimana untuk melakukannya dengan lebih cekap dalam Access 2010. Apakah pernyataan SQL yang paling berkesan?
Penyelesaian:
Anda boleh menggunakan pertanyaan SQL berikut:
<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>
...Selepas melaksanakan pertanyaan ini (dengan mengandaikan jadual contoh anda dinamakan tblUnpivotSource), anda akan mendapat set hasil berikut:
<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>
Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan UNPIVOT dalam Microsoft Access 2010?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!