You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL ISNULL函数的PostgreSQL等效写法求助

问题解决:PostgreSQL中ISNULL函数报错

错误的核心原因是:PostgreSQL不支持MySQL那种接受两个参数的ISNULL()函数。PG里的ISNULL()只有单参数版本,仅用于判断某个值是否为NULL(返回布尔值),不能用来做NULL值替换。

要实现你想要的「如果a.propertyaddress为NULL,就用b.propertyaddress替代」的逻辑,PostgreSQL里用标准SQL函数COALESCE()即可,它的作用就是返回参数列表里第一个非NULL的值,和MySQL的双参数ISNULL()功能完全一致。

修改后的完整SQL代码:

Select a.parcelid, a.propertyaddress, b.parcelid, b.propertyaddress,
    COALESCE(a.propertyaddress, b.propertyaddress)
From public.nashhousing a
JOIN public.nashhousing b 
    on a.parcelid = b.parcelid
    AND a.uniqueid <> b.uniqueid
Where a.propertyaddress is null

额外补充:如果你想用PG原生的方式实现类似逻辑,也可以用CASE表达式,写法如下:

CASE WHEN a.propertyaddress IS NOT NULL THEN a.propertyaddress ELSE b.propertyaddress END

不过COALESCE()更简洁,推荐使用。

内容的提问来源于stack exchange,提问作者Alexia Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:45:36