我需要trunc()
一个从sum()
得到的double precision
数字。因为trunc()
只接受numeric
所以我必须将double precision
投给numeric
。在原始SQL中,这是直截了当的:
trunc(cast(sum(...) as numeric), 0)
我使用 JOOQ 尝试了同样的事情:
trunc(sum(...).cast(???), 0)
如何使用 JOOQ 转换为数字?
您正在寻找.cast(SQLDataType.NUMERIC)
在 jOOQ 3.11 及更高版本中,PostgresDataType.NUMERIC
的使用已被弃用,但这是旧版本的替代方法:.cast(PostgresDataType.NUMERIC)