我有一个简单的公司表,该表不一致地使用列名turnoverrevenue。该表当前如下所示:

company, turnover, revenue
A, 10000, 0
B, 0, 2500
C, 0, 3000
4, 23000, 0

我知道如何使用合并在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;

我该如何编写一个查询,以实现类似零的合并结果?

最佳答案

您可以将 NULLIF COALESCE结合使用:

SELECT company, COALESCE(NULLIF(turnover, 0), revenue) AS revenue FROM company_profile;

如果参数相等,则NULLIF返回NULL,否则返回第一个参数。

关于postgresql - 合并为零而不是null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47918929/

10-12 16:17