Joe*_*cop 6 postgresql json jsonb postgresql-9.5
我正在访问一个jsonb字段中的数组(一个名为“choice_values”的 json 对象),并希望将其内容解析为逗号分隔的文本字段。
SELECT
jsonb_array_elements(doc -> 'form_values' -> '8189' -> 'choice_values')
FROM
field_data.exports;
Run Code Online (Sandbox Code Playgroud)
该 jsonb_array_elements 函数返回一个“文本集”,我想将其转换为包含在单个字段中的逗号分隔的数组值列表。
谢谢你。
集合返回函数(如jsonb_array_elements_text())可以在 SELECT 列表中调用,但它们不能在聚合函数中使用。
这是在 FROM 子句中调用 set 返回函数的好习惯,通常在横向连接中,如本例所示:
with the_data as (
select '["alfa", "beta", "gamma"]'::jsonb as js
)
select string_agg(elem, ',')
from
the_data,
jsonb_array_elements_text(js) elem;
string_agg
-----------------
alfa,beta,gamma
(1 row)
Run Code Online (Sandbox Code Playgroud)
所以你的查询应该是这样的:
select string_agg(elem, ',')
from
field_data.exports,
jsonb_array_elements_text(doc -> 'form_values' -> '8189' -> 'choice_values') elem;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7811 次 |
| 最近记录: |