如果输出为负值,如何使其为空?

khbbv19g  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(391)

嗨,我正在处理一个查询,我想做的是,每当输出为负值时,我想使其为空,下面是我的查询,有人能帮我吗?

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
sg3maiej

sg3maiej1#

如果希望负值的结果为null,请使用

nullif(greatest(/* your expression */, 0), 0)
tkclm6bt

tkclm6bt2#

把你的逻辑移到 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 .

相关问题