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

PostgreSQL查询返回Null时,如何设置默认值?

在PostgreSQL中为查询返回Null的变量设置默认值

针对你遇到的场景,有几种简洁的方式给_retention变量设置默认值:

方法1:使用COALESCE函数包裹整个查询

这种方式仅在没有匹配到fulfilment_type = 'daily'的记录时,才会给变量赋值默认值(示例中用30作为默认值,可按需替换)。如果存在匹配记录但retention_days字段本身为Null,变量会保留Null值:

DECLARE _retention bigint := COALESCE(
                              (SELECT retention_days
                               FROM   retention_period
                               WHERE  fulfilment_type = 'daily'), 
                              30);

方法2:使用SELECT ... INTO ... DEFAULT语法

将变量声明和赋值分开,在BEGIN块中使用带DEFAULT子句的SELECT INTO语句,同样在无匹配记录时触发默认值:

DECLARE _retention bigint;
BEGIN
  SELECT retention_days
  INTO _retention DEFAULT 30
  FROM   retention_period
  WHERE  fulfilment_type = 'daily';
END;

方法3:COALESCE包裹字段(适用不同场景)

如果需要无论无匹配记录,还是匹配到的记录中retention_days为Null时都使用默认值,就把COALESCE直接套在字段上:

DECLARE _retention bigint := (SELECT COALESCE(retention_days, 30)
                              FROM   retention_period
                              WHERE  fulfilment_type = 'daily');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:22:34