PostgreSQL COALESCE types text and integer cannot be matched

pgsql 使用 COALESCE() 函数时(使用Navicat查询工具),出现这个问题,中文意思应该是:“COALESCE类型不能匹配文本和整数”。

问题语句差不多是这样的 …… COALESCE('1',0)::int …… ,然而当我直接使用这个语句进行测试,是没有问题的(如下);但是如果内嵌到长的SQL语句里面就会报这个错误,很奇怪,不知道是查询工具的问题,还是函数自身问题(后续我又用pgadmin进行了测试,发现)。

select null::int;
select '1'::int;
select COALESCE(1, 0)::int;
select COALESCE('1', 0)::int;
select COALESCE(1, '0')::int;
select COALESCE('1', '0')::int;

不管咋样问题还是的解决,需要保持前后数据格式一直,我是都改成字符串了:

…… COALESCE('1','0')::int ……

Navicat查询

报错信息(比较详细)

ERROR:  COALESCE types text and integer cannot be matched
LINE 14:         , COALESCE(dsrTemp.dsrcount, 0) as ppaccount
                                              ^

时间: 0.075s

pgadmin

报错信息

ERROR:  COALESCE types text and integer cannot be matched
LINE 14:         , COALESCE(dsrTemp.dsrcount, 0) as ppaccount
                                              ^
SQL 状态: 42804
字符: 614

查看对应文档可以找到该状态码:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值