我更新了在 Room 中创建的表中的数据。更新时,我传递了 2 个值。我唯一地更新第一个值,只有当表中的当前值大于新值时才需要更新第二个值。
比如这样一个查询,如果两个值都无条件更新:
@Query("UPDATE orders SET order_amount = :amount, order_price = :price WHERE order_id =:id")
void update(Float amount, Float price, int id);
我试图SET在设计后插入CASE WHEN order_price > :price THEN order_price = :price。但它CASE强调了一个错误:
<column name> expected, got 'CASE'
如何提出这样的要求?
case 返回指定的值,而不是执行条件操作。所以你应该像这样使用它: