このスキーマを使用して、既存のテーブルからテーブルにデータを挿入しようとしています。
X1 | Y1 | Z1 | X2 | Y2 | Z2
---------------------------
a | 1 | 2 | c | 5 | 6
b | 3 | 4 | d | 7 | 8
そして、私が記入したいテーブルはこのスキーマを持つべきです:
X | Y | Z
--------------
a | 1 | 2
b | 3 | 4
c | 5 | 6
d | 7 | 8
可能であれば、どうすればよいですか。
返信ありがとうございます
横方向の結合を使用します。
select v.x, v.y, v.z
from t cross join lateral
(values (t.X1, t.Y1, t.Z1), (t.X2, t.Y2, t.Z2)) v(x, y, z);
これはunion all
、データベースを1回だけスキャンするため、よりもパフォーマンスが優れているはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加