如何避免空表的"SELECT max(rank)FROM test"的null结果?

Ral*_*lph 8 java mysql hibernate jpa

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

我用: SELECT max(rank) FROM test

这工作正常,除了表是空的情况,然后结果是null,但我需要0.

如果我能够用一个简单的if语句"捕获"null,那就不会有问题了,但是我不能这样做(框架只允许指定一个JPA Query但没有java代码).

有没有人知道如何调整该查询以获取0而不是null如果表是空的? - 数据库是MySQL,本机查询或存储过程是不可选的.

Fro*_*y Z 8

也许:

SELECT COALESCE(MAX(rank), 0) FROM test
Run Code Online (Sandbox Code Playgroud)

编辑

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