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

如何使用TERADATA SQL引擎从JSON响应中提取多个值并转结构化表格

Teradata JSON字段提取解决方案

适用场景

针对你给出的JSON结构:

{"barrings": [{"0": True,"1": false,"5": True,"barring": "BARALL"}]}

需要输出固定id、barring为0/1/5键名、status为对应布尔值的结构化结果,可参考以下两种实现方案:


方案1:Teradata 16.20+ 版本(推荐)

使用JSON_TABLE配合UNPIVOT实现,性能更优:

SELECT
  1546075 AS id,
  jt.barring,
  jt.status
FROM 
  -- 替换为你实际的数据源表名
  your_source_table t,
JSON_TABLE(
  -- 替换为你存储JSON数据的字段名,若存储为字符串格式先套JSONParse()
  t.json_content,
  '$.barrings[0]'
  COLUMNS (
    status_0 BOOLEAN PATH '$."0"',
    status_1 BOOLEAN PATH '$."1"',
    status_5 BOOLEAN PATH '$."5"'
  )
) AS parsed_json,
UNPIVOT (
  status FOR barring IN (
    status_0 AS '0',
    status_1 AS '1',
    status_5 AS '5'
  )
) AS jt;

方案2:低版本Teradata兼容方案

如果版本不支持JSON_TABLE,用JSONExtract配合UNION ALL实现:

SELECT 1546075 AS id, '0' AS barring, JSONExtract(json_content, 'barrings[0]."0"') AS status FROM your_source_table
UNION ALL
SELECT 1546075 AS id, '1' AS barring, JSONExtract(json_content, 'barrings[0]."1"') AS status FROM your_source_table
UNION ALL
SELECT 1546075 AS id, '5' AS barring, JSONExtract(json_content, 'barrings[0]."5"') AS status FROM your_source_table;

输出结果示例

idbarringstatus
15460750True
15460751False
15460755True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:27:02