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

时间:2012-04-19 09:20:48

标签: java mysql hibernate jpa

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

我使用:SELECT max(rank) FROM test

这种方法很好,除了表是空的情况,结果是null,但我需要0

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

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

1 个答案:

答案 0 :(得分:8)

也许:

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

修改

JPQL(JPA 2.0)似乎支持

COALESCEhttp://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html