我想将表OLD
的行复制到另一个表NEW
中。
INSERT INTO NEW
SELECT date, kind, id, product, version, quantity FROM OLD;
表OLD
的列kind
为VARCHAR
,其中包含insert
,extract
,delete
等字词。在NEW
表中,此列为INTEGER
。有没有办法说,如果你发现delete
插入1,如果你发现extract
插入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。