如何选择返回0
时没有行匹配条件,并在任何行包含与null
值的列返回null
最大列值返回0,空的最大列值休眠:如何选择基于条件
例如:
SELECT MAX(groupId) from Interview WHERE appId= 61
当没有行本匹配该条件,或者当存在与groupId=null
行,它返回 0
- 当queryForInt()
,null
- 当queryForList()
并获得第一个条目。
请让我知道,查询更改或Hibernate方法。
如何选择返回0
时没有行匹配条件,并在任何行包含与null
值的列返回null
最大列值返回0,空的最大列值休眠:如何选择基于条件
例如:
SELECT MAX(groupId) from Interview WHERE appId= 61
当没有行本匹配该条件,或者当存在与groupId=null
行,它返回 0
- 当queryForInt()
,null
- 当queryForList()
并获得第一个条目。
请让我知道,查询更改或Hibernate方法。
你可以尝试:
SELECT CASE MaxGroupId当计(的groupId)= 0,那么0 ELSE MAX(的groupId) END FROM采访 WHERE的appid = 61
SQL IF语句的帮助:How do I perform an IF...THEN in an SQL SELECT?
或者类似的东西:
SELECT CASE WHEN MaxGroupId COUNT(RECORD_ID)= 0 THEN 0 ELSE MAX(的groupId) END FROM采访 WHERE的appid = 61和GROUP BY ANOTHERCOLUMN
问题是,即使没有行匹配和groupId为空,count(groupId)始终返回0。 无论如何感谢您的建议。现在我已经在我的代码中处理了用例。 谢谢全部 – Chinmaya
您可以使用其他一列来指望。你的采访表中还有哪些其他专栏。是否有像记录ID一样的非主键?你可以使用它。 – pavbhaji
太棒了。它的工作原理非常好..非常感谢... select CASE WHEN COUNT(id)= 0 THEN 0 ELSE MAX(groupId)END as maxGroupId FROM Interview WHERE applicationId = 61 – Chinmaya
你的第一句话违背你的第二句。也许你应该考虑两个查询。或者一般的查询并处理java中的“业务逻辑”。 –