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

PostgreSQL中参数可为null::jsonb时如何安全获取jsonb_array_length

解决方案

可以利用jsonb_typeof()函数判断JSON值的类型,结合CASE语句实现需求,写法简洁且逻辑清晰:

SELECT 
  CASE jsonb_typeof(items)
    WHEN 'array' THEN jsonb_array_length(items)
    ELSE 0
  END AS array_length
FROM mytable;

说明

  • jsonb_typeof(items)会返回当前items列值的JSON类型,比如数组返回'array',null标量返回'null',其他标量(如字符串、数字)返回对应类型。
  • 当类型为数组时,正常调用jsonb_array_length()获取长度;其他所有情况(包括null标量)直接返回0,避免报错。

对比你原来的写法,这个方案更直观,性能也更优,不需要额外的JSON路径查询或数组构建操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:22:01