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

如何在Amazon Redshift中提取JSON列内的指定值?

提取JSON数组内的目标值

针对你的需求,结合AWS Athena(基于Presto)的JSON处理能力,直接使用JSON_EXTRACT_SCALAR函数配合路径表达式即可提取目标内容:

修改后的查询语句

SELECT 
    CAST(employee_id AS INT) AS employee_id, 
    employee_email, 
    gender,
    JSON_EXTRACT_SCALAR(custom_fields_json, '$.efcustom_text_userid[0]') AS extracted_userid
FROM 
    xxxxxx_employee
WHERE 
    employee_id IS NOT NULL
ORDER BY 
    employee_id DESC

核心逻辑说明

  • JSON_EXTRACT_SCALAR:该函数会直接提取JSON中的标量值(字符串、数字等),返回结果不带引号,完全匹配你的需求。
  • 路径$.efcustom_text_userid[0]:
    • $代表整个JSON对象
    • .efcustom_text_userid定位到目标键
    • [0]取该键对应数组的第一个元素(你的场景中数组仅包含单个元素)

异常处理(可选)

如果存在JSON格式不规范、键不存在或数组为空的情况,可以用COALESCE设置默认值:

SELECT 
    CAST(employee_id AS INT) AS employee_id, 
    employee_email, 
    gender,
    COALESCE(JSON_EXTRACT_SCALAR(custom_fields_json, '$.efcustom_text_userid[0]'), '无数据') AS extracted_userid
FROM 
    xxxxxx_employee
WHERE 
    employee_id IS NOT NULL
ORDER BY 
    employee_id DESC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:07:06