将行从表复制到另一个

时间:2016-11-18 08:09:07

标签: sqlite

我想将表OLD的行复制到另一个表NEW中。

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

OLD的列kindVARCHAR,其中包含insertextractdelete等字词。在NEW表中,此列为INTEGER。有没有办法说,如果你发现delete插入1,如果你发现extract插入2等...?

2 个答案:

答案 0 :(得分: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;

这假设列正确排列,所有其他列类型匹配。

答案 1 :(得分:0)

这应该对你有用,

INSERT INTO Destination SELECT * FROM Source;

有关正式定义,请参阅SQL As Understood By SQLite: INSERT