8

我需要在 JPQL (2.0) 中形成一个查询来选择最大值(等级)。

我用:SELECT max(rank) FROM test

这很好用,除了表为空的情况,结果是null,但我需要0.

如果我能够用一个简单的 if 语句“捕捉”空值,这将没有问题,但我不能这样做(框架只允许指定 JPA 查询,但不允许指定 java 代码)。

如果表为空,是否有人知道如何调整该查询以获取一个0而不是一个?null- 数据库是 MySQL,不能选择原生查询或存储过程。

4

1 回答 1

8

也许:

SELECT COALESCE(MAX(rank), 0) FROM test

编辑

COALESCEJPQL(JPA 2.0)似乎支持:http: //java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html

于 2012-04-19T09:22:02.497 回答