使用条件表达式更新set语句

时间:2014-01-07 19:53:17

标签: sql oracle mybatis

我需要做一个更新查询,我根据计数查询的结果设置一个值。如果计数没有返回结果,我想将状态设置为1,否则我想将状态设置为2.

这是我的尝试不起作用:

UPDATE TABLE_1 SET status = ((select count(1) from TABLE_2) > 0 ? 1 : 2)

另外,我在mybatis xml文件中执行此操作,因此如果有一些魔法,我可以在mybatis中执行,也可以。

1 个答案:

答案 0 :(得分:2)

希望DECODE帮助你!但状态中的所有行都更新了相同的值..你想要那样吗?

UPDATE TABLE_1 SET status = (select DECODE(count(1),0,2,1) from TABLE_2);
相关问题