【发布时间】:2011-11-28 15:09:53
【问题描述】:
有没有类似的
select max(val,0)
from table
我不想找到整个表格的最大值
一定有比这更简单的方法吧?
select case when val > 0 then val else 0 end
from table
编辑:我正在使用 Microsoft SQL Server
【问题讨论】:
-
在 Fortran 中,MAX(a, b, ...) 做了你想要的。在SQL中,一些方言支持
LARGER或SMALLER或LARGEST或SMALLEST等函数。任务 AFAIK 没有标准功能。 -
当心可怕的 NULL。您是否需要:
CASE WHEN val IS NULL THEN 0 WHEN val > 0 THEN val ELSE 0 END(用于已知 0 不为空的情况),或CASE WHEN val1 IS NULL THEN val2 WHEN val2 IS NULL THEN val1 WHEN val1 > val2 THEN val1 ELSE val2 END用于MAX(val1, val2)。 -
它看起来确实像复制品。抱歉,我在搜索时没有找到该线程。模组,请随意删除。
标签: sql sql-server