【发布时间】:2021-12-14 11:39:33
【问题描述】:
我正在尝试使用 INSERT 语句将值添加到新表中的几列,具体取决于另一个表中列的值。我正在用 SQLite 写作。我受到in sqlite update trigger with multiple if/Case Conditions 这个问题的启发,它在其中一列中使用了 CASE 语句,但我想应用于我添加的所有列。
我写的代码类似于:
CREATE TABLE machine_info (
MachineType TEXT,
MaxPower INTEGER,
Frequency REAL);
INSERT INTO machine_info (MachineType, MaxPower, Frequency)
VALUES (
CASE WHEN parts.Machine = "A" THEN "Diode", 200, 60
WHEN parts.Machine = "B" THEN "AC", 500, 50
WHEN parts.Machine = "C" THEN NULL, 500, NULL
);
错误消息显示Result: near ",": syntax error。我是否将 CASE 语句包装在错误的位置?
【问题讨论】:
-
此问题已被编辑。最初的问题看起来我会在现有表中填写新列。在这种情况下,使用 UPDATE 作为@forpas 回答将是正确的方法。或者将“机器”列复制到新表中,更新表并删除列,尽管 SQLite 目前不支持删除列。
标签: sql sqlite sql-insert