2016-11-18 17 views
0

テーブルOLDの行を別のテーブルNEWにコピーしたいとします。テーブルから別の行にコピー

INSERT INTO NEW 
SELECT date, kind, id, product, version, quantity FROM OLD; 

テーブルOLDVARCHARinsertextractdeleteような言葉が含まれている列kindを有しています。 NEWテーブルでは、この列はINTEGERです。あなたは挿入2などを見つける場合は、delete挿入1を見つけると言うことができる方法はありますか?

答えて

1

あなたは整数と文字列のラベルを交換するCASEステートメントを使用することができます。

INSERT INTO NEW 
SELECT date, 
     CASE WHEN kind = 'delete' THEN 1 
      WHEN kind = 'extract' THEN 2 
      ELSE ... 
     END, 
     product, 
     version, 
     quantity 
FROM OLD; 

これは、列が正しく並んでいることを前提とし、他のすべての列の型が一致します。

+0

ありがとうございました! – yaylitzis

0

これはあなたのために働く必要があり、

INSERT INTO Destination SELECT * FROM Source; 

は正式な定義についてはSQL As Understood By SQLite: INSERTを参照してください。

関連する問題