我有表user_groups,如果任何user_group实体在time字段中有0,则需要选择字段time或0的最大0值。
就像这样:
SELECT time FROM user_groups
WHERE
IF (time == 0) THEN time = 0
ELSE MAX(time)我需要多平台解决方案。
更新:
我在用mysql。
在这种情况下:
id | time |
1 | 5 |
2 | 6 |我在等6。
在这种情况下:
id | time |
3 | 5 |
4 | 6 |
5 | 0 |我在等0
发布于 2014-11-05 09:27:27
该解决方案使用abs函数也涵盖负时间情况:
SELECT case when min(abs(time)) = 0 then 0 else max(time) end FROM user_groups;发布于 2014-11-05 07:41:51
用案例怎么样?
SELECT case when min(time) = 0 then 0 else max(time) end FROM user_groups;或者,如果时间可以<0,但应该只考虑时间0或更长的时间,那么添加where子句会有所帮助。
SELECT case when min(time) = 0 then 0 else max(time) end FROM user_groups where time >= 0;发布于 2014-11-05 07:46:31
检查是否至少有一个记录的时间是零。根据结果显示0或最大值(时间)
select
case when max(case when time = 0 then 1 else 0 end) = 1 then 0 else max(time) end
from user_groups;编辑:您已经将MySQL标记添加到请求中。MySQL知道一个布尔数据类型,其中TRUE =1和FALSE = 0。因此,您可以将上面的内容写成:
select
case when max(time = 0) then 0 else max(time) end
from user_groups;https://stackoverflow.com/questions/26751882
复制相似问题