如何将带有Case语句的Sql order by子句转换为JOOQ?

时间:2013-10-29 09:52:02

标签: java sql jooq

我想使用Sql转换JOOQ orderby子句,而BillAmount是BigDecimal数据类型。

 ORDER BY CASE WHEN (BillAmount <= 0) 
THEN
 BillAmount 
ELSE
 BillNumber 
END

如何使用JOOQ编写上述行?

1 个答案:

答案 0 :(得分:2)

您最好的选择是使用CASE expression (as documented in the manual)

直接将SQL子句转换为相应的jOOQ子句
.orderBy(DSL.decode().when(BillAmount.le(0), BillAmount)
                     .otherwise(BillNumber))