在SQLite中使用Case更新命令

Hit*_*esh 5 sql sqlite sql-update

我想以A这样一种方式更新表:如果需要表列的属性,那么只有它会改变,否则它不会改变..

Update table A set B="abcd" ,C= (case when C="abc" then C="abcd" else C end) where column =1;
Run Code Online (Sandbox Code Playgroud)

手段C只应改变的时候column=1 and C value is abc ,否则C不应该更新..它应该被丢弃,只有B变化.但如果C 值匹配,即abc给我输出0 ..不改变为abcd

CL.*_*CL. 7

THEN零件内部,与值C="abcd"进行比较C,并返回1或0.

整个CASE表达式应该只返回一个值然后写入C列,所以你只想'abcd'在这个地方:

UPDATE tableA
SET B = 'abcd',
    C = CASE
        WHEN C = 'abc' THEN 'abcd'
                       ELSE C
        END
WHERE column = 1;
Run Code Online (Sandbox Code Playgroud)