在SQLite3中将UPDATE与CASE条件一起使用

时间:2018-11-27 22:50:50

标签: sql sqlite

我正在尝试根据 table_1 table_2 中的值之间的一些比较来更改 table_1 上字段的值。因此,我在 UPDATE 语句中使用了 CASE 语句。 但是使用下面的代码,我收到一条错误消息:“语法错误”。

UPDATE table_1 
SET value_1 =  CASE
                 WHEN table_1.x = table_2.y THEN 'OK'
                 WHEN table_1.x <> table_2.y THEN 'NOT OK'
               END
               FROM table_2

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

SQLite在from中不支持update。您需要使用相关的子查询:

update table_1 
    set value_1 = (case when exists (select 1 from table_2 where table_1.x = table_2.y)
                        then 'OK' else 'NOT OK'
                   end);