ホームページ >データベース >mysql チュートリアル >Microsoft Access 2010 で UNPIVOT をシミュレートするにはどうすればよいですか?
Access 2010 で UNPIVOT をエミュレートする
MS SQL Server 2005 は UNPIVOT 関数をサポートしていますが、Access 2010 はサポートしていません。 Access 独自の機能を使用して同様の効果を実現するにはどうすればよいですか?たとえば、次のテーブルがあるとします。
<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>
これを次のように変換します:
<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>
ここで、キー 452 は繰り返される値です。現在、OLEDB/ATL C で変換しています。十分な速度ですが、Access 2010 でより効率的に実行する方法にはまだ興味があります。最も効率的な SQL ステートメントは何ですか?
解決策:
次の SQL クエリを使用できます:
<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>
...このクエリを実行すると (テーブル例の名前が tblUnpivotSource であると仮定します)、次の結果セットが得られます:
<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>
以上がMicrosoft Access 2010 で UNPIVOT をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。