を登録しよ使用して広いテーブルを変換し、私は成功せず、長い形式で新しい宛先表2に表1(ワイドフォーマット)での私のデータをピボット/変換しよう:は長いINNERは、PostgreSQLを使用して、横方向およびPostgreSQLの
私の問題の簡単な例:
表1
id_profil | no_h | P1 | P2 | P3 | Pn
01 1 5 7 x1 ...
01 2 7 78 x2 ...
02 1 5 7 x3 ...
表2、表1変換の結果:
id_profil | no_h | parametre | valeur
01 1 P1 5
01 1 P2 7
01 1 P3 x1
01 2 P1 7
01 2 P2 78
01 2 P3 x2
02 1 P1 5
02 1 P2 7
02 1 P3 x3
テーブル1の構造/データは、this sqlfiddleにあります。
私はそれを行うためにINNER JOIN LATERAL
を使用することが可能ですいくつかのstackoverflowの投稿を参照してください。 (Postgres analogue to CROSS APPLY in SQL Serverを参照してください)しかし、正しい列名をパラメータ列に挿入するにはどうすればよいですか?実際のデータベースで
更新
、私は150の以上の列を持っているので、それは、クエリに手動で各列の名前を入力しないことも可能です場合、それはおそらく良いでしょう。
感謝私の質問を更新します。実際のベースでは150列以上あるので、私はそれらのそれぞれを入力することはできません... – reyman64
@ reyman64 pg_attributeを使用してcolテーブルとCASEパートを作成し、 RETURN QUERY EXECUTEを使用して問合せを実行します。 –
Hum thx、私は専門家ではない、私はウェブ上でQUERY EXECUTEを使用して動的ケースの例を検索しようとしている。 – reyman64