加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用COALESCE来处理PostgreSQL中的NULL值

发布时间:2020-12-13 16:41:09 所属栏目:百科 来源:网络整理
导读:我有以下查询 SELECT DISTINCT pt.incentive_marketing,pt.incentive_channel,pt.incentive_advertising FROM test.pricing pt WHERE pt.contract_id = 90000 group by 1,2,3 order by pt.incentive_marketing; 上述查询返回o / p,如附件所示 但是,我想使
我有以下查询
SELECT  DISTINCT 
     pt.incentive_marketing,pt.incentive_channel,pt.incentive_advertising 
FROM test.pricing pt 
WHERE pt.contract_id = 90000 
group by 1,2,3 
order by pt.incentive_marketing;

上述查询返回o / p,如附件所示

但是,我想使用COALESCE将所有空值替换为0
请让我知道如何在上述SELECT查询中实现这一点

现在我使用coalesce进一步修改查询如下

SELECT  
     COALESCE( pt.incentive_marketing,'0' ),COALESCE(pt.incentive_channel,'0'),COALESCE( pt.incentive_advertising,'0') 
FROM test.pricing pt 
WHERE pt.contract_id = 90000 
group by 1,3

其结果如图2所示。

我仍然收到一行空白值

您可以将COALESCE与NULLIF一起使用,以获得一个简短有效的解决方案:
COALESCE( NULLIF(yourField,''),'0' )

如果您的Field等于第二个值(在这种情况下为’),则The NULLIF function将返回null,使得COALESCE功能在所有情况下都能正常工作:

QUERY                     |                RESULT 
---------------------------------------------------------------------------------
SELECT COALESCE(NULLIF(null,'0')     |                 '0'
SELECT COALESCE(NULLIF('','0')     |                 '0'
SELECT COALESCE(NULLIF('foo','0')     |                 'foo'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读