You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JOOQ构建CASE WHEN IN (列表)条件?

实现带IN条件的CASE WHEN排序(jOOQ)

要实现你目标的SQL逻辑,需要调整jOOQ中CASE语句的写法——不再用字段直接匹配的case_(字段)形式,而是用无参的case_()来构建条件判断:

queryBuilder.addOrderBy(
    case_()
        .when(MYTABLE.MYFIELD.in("val1", "val2"), 1)
        .else_(-1)
        .asc()
);

关键说明:

  • 调用字段的in()方法即可生成IN ("val1", "val2")的SQL片段,支持传入多个值作为参数
  • 无参的case_()用于构建基于任意布尔条件的CASE表达式,替代之前的字段直接匹配模式

内容的提问来源于stack exchange,提问作者helion3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:57:28