【发布时间】:2019-09-18 16:00:52
【问题描述】:
我有一个简单的公司表,它不一致地使用列名 turnover 和 revenue。该表目前如下所示:
company, turnover, revenue
A, 10000, 0
B, 0, 2500
C, 0, 3000
4, 23000, 0
我知道如何使用 coalesce 在 null 和 value 之间进行选择,但是要丢弃的值是零而不是 null。
我想要的最终结果是:
company, revenue
A, 10000
B, 2500
C, 3000
D, 23000
我想象的查询是:
select company, coalesce_for_zero(turnover, revenue) as revenue from
company_profile;
我如何编写一个查询,以实现类似合并的结果为零?
【问题讨论】:
-
没有零合并。您需要写一个
CASE来执行此操作。 -
如果你的值总是正数,你可以只使用
greatest(turnover, revenue)- 它不会首先取非零值,但结果会 -
@VaoTsun:
GREATEST返回其参数的最大值。所以GREATEST(1, 2)会返回错误的结果。 -
啊,当然-我认为它可能是零或数字:)这里早上太早了
标签: postgresql