使用 jooq 选择条件

Selecting conditions with jooq

在 SQL 中,我可以执行以下类型的查询:

SELECT cost > 1000 AS above_k, name FROM products;

给我一个清单:

+---------+--------+
| above_k | name   |
+---------+--------+
| true    | Gold   |
| false   | Silver |
+---------+--------+

如何使用 jooq 对类似查询建模?我不能这样做(显然):

ctx.select(Tables.PRODUCTS.COST.gt(1000))

因为没有方法select(Condition condition)。或者如果我只是想:

SELECT cost*0.9 AS discounted_cost FROM products;

有没有办法使用 jooq 来做到这一点?

SQL 1:

SELECT cost > 1000 AS above_k, name 
FROM products;

jOOQ 1:

ctx.select(field(PRODUCTS.COST.gt(1000)).as("above_k"), PRODUCTS.NAME)
   .from(PRODUCTS)
   .fetch();

DSL.field(Condition)

SQL 2:

SELECT cost*0.9 AS discounted_cost 
FROM products;

jOOQ 2:

ctx.select(PRODUCTS.COST.mul(0.9).as("discounted_cost"))
   .from(PRODUCTS)
   .fetch();

Field.mul(Number) or Field.multiply(Number)