jOOQ 支持 SQL 更新 case 子句

问题描述

请问jOOQ库是否支持sql更新语句中的case子句? https://www.jooq.org/ 我的意思是等价于

UPDATE TABLE1 SET status = case 
            when status = 'status1' then 'status2'
            when status = 'status2' then 'status3'
            end

我在他们的教程中看到了 select 语句的示例,但不幸的是没有更新。可能是这样的吗?

DSL.update(DSL.table("table1")).set(DSL.field("status"),DSL.case(...))

解决方法

幸运的是,在如何处理任意 column expressions 方面,jOOQ 中的 SELECTUPDATE 语句支持没有区别。因此,您只需在语句中使用 CASE expression support

您可以直接使用 DSL.case_()DSL.when() 创建 CASE 表达式。