使用 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();
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();
在 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();
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();