さまざまなデータベースの行を列にピボットすることに関する投稿がたくさんあります。それらは、case ステートメントを使用するか、データベース ベンダーの組み込み関数を使用するかの 2 つの陣営に分類されるようです。私はMySQLを使用していますが、列にピボットしたい任意の未知数の行値をピボットできる組み込み関数については、これまでのところ何も見つかりませんでした。値が事前にわからないと、stackoverflow でよく出てくる CASE クエリを構築できません。MySQL に、クロスタブまたはピボットと呼ばれる他のデータベースに類似したものがあるかどうかを知りたいです。
-Postgresql: http://www.postgresql.org/docs/current/static/tablefunc.html
-Oracle: http://www.oracle-base.com/articles/11g/PivotAndUnpivotOperators_11gR1.php
-SQL Server: http: //msdn.microsoft.com/en-us/library/ms177410.aspx
行を列にピボットすると言うときに何を求めているのかを明確にするために、このようなテーブルを変換したいと思います
user_id キー値
ボブの髪 茶色の
ボブの目 青い
ジェイクの髪 茶色のジェイクの
高さ 6'2"
これに:
user_id 髪 目の高さ
ボブ ブラウン ブルー
ジェイク ブラウン 6'2"
私は特にMySQLのソリューションを探しているので、これを解決できるデータベース固有の新しいものや、あなたが知っていることがあれば、それは大歓迎です.