用postgre语法把[{"行业":100.0},{"技术",100.0},{"政 策",90.0}]解析成三列 只保留对应的key行
假设原始数据为一个JSON数组,存储在名为"mytable"的表的一个名为"data"的列中。可以使用PostgreSQL的JSON函数来解析JSON数据,并将其转换为表格形式。以下是一个可能的解决方案:
SELECT
(json_data->>0)::jsonb->>'行业' AS 行业,
(json_data->>1)::jsonb->>'技术' AS 技术,
(json_data->>2)::jsonb->>'政策' AS 政策
FROM
mytable,
json_array_elements(data::json) AS json_data
解释:
json_array_elements(data::json)将JSON数组中的每个元素作为单独的行返回。(json_data->>0)::jsonb->>'行业'使用索引操作符提取第一个元素,并将其转换为JSONB类型。接着,使用箭头操作符提取键为"行业"的值。- 类似地,
(json_data->>1)::jsonb->>'技术'提取第二个元素的"技术"值,(json_data->>2)::jsonb->>'政策'提取第三个元素的"政策"值。 - 最终结果是一个包含三列的表格,其中每行包含一个行业、技术和政策值。
原文地址: https://www.cveoy.top/t/topic/Ab1 著作权归作者所有。请勿转载和采集!