可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

算术表达式

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

数值算术表达式

您的数据库可以为您进行数学运算。算术运算的实现方式与数值函数类似,在类型限制方面也具有相似的限制。您可以使用以下任何运算符

  +  -  *  /  %

为了表达像这样的 SQL 查询

SELECT ((1 + 2) * (5 - 3) / 2) % 10 FROM DUAL

您可以在 jOOQ 中编写如下代码

create.select(val(1).add(2).mul(val(5).sub(3)).div(2).mod(10)).fetch();

运算符优先级

jOOQ 不知道任何运算符优先级(另请参阅布尔运算符优先级)。所有操作都从左到右进行评估,就像任何面向对象的 API 一样。以下两个表达式是相同的

   val(1).add(2) .mul(val(5).sub(3)) .div(2) .mod(10);
(((val(1).add(2)).mul(val(5).sub(3))).div(2)).mod(10);

日期时间算术表达式

jOOQ 还支持 Oracle 风格的语法,用于向 Field<? extends java.util.Date> 添加天数

SELECT SYSDATE + 3 FROM DUAL;
create.select(currentTimestamp().add(3)).fetch();

对于更高级的日期时间算术,请使用 DSL 的 timestampDiff() 和 dateDiff() 函数,以及 jOOQ 内置的 SQL 标准 INTERVAL 数据类型支持

反馈

您对此页面有任何反馈吗?我们很乐意听取您的意见!

The jOOQ Logo