如何使用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
相关产品推荐
相关产品推荐

