合并为零而不是null

问题描述 投票:9回答:1

我有一个简单的公司表,不一致使用列名turnoverrevenue。该表目前看起来像这样:

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;

如何编写一个可以实现零合并结果的查询?

postgresql
1个回答
9
投票

你可以将NULLIFCOALESCE结合起来:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.