web-dev-qa-db-ja.com

異なる列名のテーブルを選択する

SQLでは、Select into ...は行を別の(バックアップ)テーブルにコピーします。バックアップテーブルの構造(または列名)が異なる場合、これは可能ですか?そうでない場合、これを達成するための最良の方法は何ですか?

これが私がやりたいことです:TableAには列a1,a2,a3があります。このテーブルのいくつかの行を、列b1,b2,b3,b4を持つ別のテーブルTableBにコピーしたい。 a1のコンテンツはb1に、a2b2に移動します。

19
zolio

列名は、データ型である限り、まったく問題ではありません一致。

列のデータ型が一致しない場合は、それに応じて値をキャストしてみてください。 小さなダミーテーブルで試してみてください。混乱を避けるために、ターゲット列を明示的にリストしてください。このような:

INSERT INTO TableB (b1, b2, b3)
SELECT a1, a2, a3
FROM   TableA
WHERE <some condition>;

詳細については、SQLiteのマニュアル here を参照してください。

44