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

如何在PostgreSQL中从jsonb数组提取文本生成新列

PostgreSQL从jsonb数组提取文本生成新列

基础查询语句

你的ErrorCode列是仅含单个元素的jsonb数组,要提取其中的文本并生成Error列,使用数组索引(PostgreSQL jsonb数组索引从0开始)结合->>操作符(直接返回文本类型)即可:

SELECT "Id.", ErrorCode ->> 0 AS Error
FROM my_table;

带过滤条件的查询

如果要执行where error = 'exit code: 1'这类过滤操作,直接用同样的表达式作为过滤条件:

SELECT "Id.", ErrorCode ->> 0 AS Error
FROM my_table
WHERE ErrorCode ->> 0 = 'exit code: 1';

处理空数组场景

如果存在ErrorCode为空数组的情况,可使用COALESCE函数返回默认值(比如空字符串)避免返回null:

SELECT "Id.", COALESCE(ErrorCode ->> 0, '') AS Error
FROM my_table;

问题说明

你之前尝试的语句存在两个问题:

  • 列名应为ErrorCode而非reasons
  • jsonb数组需使用数字索引(如0)而非字符串索引,且->返回的是jsonb类型,->>才会返回文本类型,更适合后续的字符串过滤操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:20:42