我有一个简单的公司表,它不一致地使用列名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;
如何编写一个可以为零实现类似合并结果的查询?
答案 0 :(得分:9)
您可以将NULLIF
与COALESCE
合并:
SELECT company, COALESCE(NULLIF(turnover, 0), revenue) AS revenue FROM company_profile;
NULLIF
如果它的参数相等则返回NULL
,否则返回第一个参数。
答案 1 :(得分:-1)
您可以将0作为参数合并
coalesce(turnover, revenue, 0)