问题描述
请问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 中的 SELECT
或 UPDATE
语句支持没有区别。因此,您只需在语句中使用 CASE
expression support。
您可以直接使用 DSL.case_()
或 DSL.when()
创建 CASE
表达式。