Sql 如果输出为负值,如何使其为空?
嗨,我正在处理一个查询,我想做的是,每当输出值为负值时, 我想把它设为空,下面是我的查询,有人能帮我吗Sql 如果输出为负值,如何使其为空?,sql,database,postgresql,pgadmin,Sql,Database,Postgresql,Pgadmin,嗨,我正在处理一个查询,我想做的是,每当输出值为负值时, 我想把它设为空,下面是我的查询,有人能帮我吗 select (to_char((coalesce(14515200/3600000,0) - (coalesce(30512.65/3600,0) - (coalesce(1800/3600,0) + (coalesce(1800/3600,0))))),'FM99,999,999,999'))::character varying as test 如果希望负值的结果为NULL,请使用 n
select (to_char((coalesce(14515200/3600000,0) - (coalesce(30512.65/3600,0) - (coalesce(1800/3600,0) + (coalesce(1800/3600,0))))),'FM99,999,999,999'))::character varying as test
如果希望负值的结果为NULL,请使用
nullif(greatest(/* your expression */, 0), 0)
将逻辑移到
from
子句并使用case
:
select (case when test_n >= 0 then test_n::character varying end)
from (select . . . as test_n -- your expression as number) x
如果表达式实际使用表中的值,则可以使用子查询、CTE或横向联接来定义
test\n
usemagest(…,0)
@LaurenzAlbe select(to_char(最大值(合并(14515200/3600000,0)-(合并(30512.65/3600,0)-(合并(1800/3600,0)+(合并(1800/3600,0))),0),'fm999999'))::字符随缺勤而变化它将0作为输出,我想显示null,而不是0然后添加另一个NULLIF()
。我没有找到在哪里添加null if?你能补充一下吗?