2012-04-19 69 views
6

我需要在JPQL(2.0)中形成一個查詢來選擇最大值(排名)。如何避免空表「SELECT max(rank)FROM test」的空結果?

我用:SELECT max(rank) FROM test

這工作得很好,除非該表是空的話,那麼結果是null,但我需要0

如果我能夠用簡單的if語句「捕捉」null,但我不能這樣做(框架只允許指定JPA查詢但不指定java代碼)。

有沒有人有一個想法,如果該表爲空,如何調整該查詢以獲取0而不是null? - 數據庫是MySQL,原生查詢或存儲過程是沒有選擇的。

+0

@Frosty Z:爲什麼刪除嗎? – zerkms 2012-04-19 09:23:16

+0

因爲它是一個本地查詢(我想JPQL不允許這樣COALESCE) – 2012-04-19 09:24:29

+3

沒有原生查詢,沒有存儲過程,你不能做一個簡單的'if(ret == null)ret = 0;'種類事情。我很好奇,爲什麼所有的限制?感覺就像你故意將你的雙手綁在背後。 – pap 2012-04-19 09:25:41

回答