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

如何在Redshift中解析含键值对的字符串并提取指定字段

Redshift文本列提取指定键值对字段方案

假设你的表名为your_table,存储键值对的文本列名为attr_str,可以使用Redshift的REGEXP_SUBSTR函数结合正则表达式提取目标字段:

提取各字段的SQL示例

1. 提取Manager字段

SELECT
  REGEXP_SUBSTR(attr_str, '"Manager"=>"([^"]+)"', 1, 1, 'e') AS manager
FROM your_table;

2. 提取Manager employee ID字段

SELECT
  REGEXP_SUBSTR(attr_str, '"Manager employee ID"=>"([^"]+)"', 1, 1, 'e') AS manager_employee_id
FROM your_table;

3. 提取Manager First Name字段

SELECT
  REGEXP_SUBSTR(attr_str, '"Manager First Name"=>"([^"]+)"', 1, 1, 'e') AS manager_first_name
FROM your_table;

正则逻辑说明

  • '"KeyName"=>"([^"]+)"':精准匹配目标键的格式,捕获双引号包裹的字段值([^"]+表示匹配除双引号外的任意字符,直到遇到下一个双引号终止)
  • REGEXP_SUBSTR参数'e':指定返回正则表达式中第一个捕获组的内容,而非整个匹配的完整片段

如果需要一次性提取所有字段,可合并为单条SQL:

SELECT
  REGEXP_SUBSTR(attr_str, '"Manager"=>"([^"]+)"', 1, 1, 'e') AS manager,
  REGEXP_SUBSTR(attr_str, '"Manager employee ID"=>"([^"]+)"', 1, 1, 'e') AS manager_employee_id,
  REGEXP_SUBSTR(attr_str, '"Manager First Name"=>"([^"]+)"', 1, 1, 'e') AS manager_first_name
FROM your_table;

内容的提问来源于stack exchange,提问作者mazur.os

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:01:10