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

如何从SQL表的report_json JSON列提取所有药物的bin与name字段

从JSON列提取药物的bin和name字段

以下是不同主流SQL数据库的实现方案:

MySQL(5.7及以上版本)

使用JSON_TABLE和JSON_KEYS解析嵌套JSON对象:

SELECT 
  JSON_UNQUOTE(JSON_EXTRACT(drug_info, '$.bin')) AS bin,
  JSON_UNQUOTE(JSON_EXTRACT(drug_info, '$.name')) AS name
FROM 
  your_table_name,
  JSON_TABLE(
    JSON_KEYS(report_json->'$.drugs'),
    '$[*]' COLUMNS(drug_key VARCHAR(255) PATH '$')
  ) AS keys,
  JSON_TABLE(
    report_json->'$.drugs."${drug_key}"',
    '$' COLUMNS(drug_info JSON PATH '$')
  ) AS drugs;

PostgreSQL(支持json/jsonb类型)

使用jsonb_each展开JSON对象:

SELECT 
  (drug_data->>'bin') AS bin,
  (drug_data->>'name') AS name
FROM 
  your_table_name,
  jsonb_each(report_json::jsonb->'drugs') AS drugs(drug_name, drug_data);

SQL Server(2016及以上版本)

使用OPENJSON指定解析路径:

SELECT 
  JSON_VALUE(drug_data, '$.bin') AS bin,
  JSON_VALUE(drug_data, '$.name') AS name
FROM 
  your_table_name
CROSS APPLY 
  OPENJSON(report_json, '$.drugs')
  WITH (drug_data NVARCHAR(MAX) AS JSON);

输出示例

binname
YCodeine

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:03:13