从给定键的 PostgreSQL JSON 数组中提取所有值
Extract all values from a PostgreSQL JSON array given a key
如何在 postgres
中提取 json
[{"val":"2","dsk:"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]
其中 dsk 值
它return 空值
SELECT '[{"val":"2","dsk:"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]'::json->'dsk'
如前所述,您不能使用您的方法,因为它是一个数组,但您可以使用 json 函数尝试不同的方法:
WITH data
AS (
SELECT *
FROM json_array_elements('[{"val":"2","dsk":"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]'::json)
)
SELECT value->'dsk'
FROM data
您可以使用 jsonb_path_query_array
函数并从数组中提取整个值
select jsonb_path_query_array('[{"val":"2","dsk":"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]','$[*].dsk')
演示在 DBfiddle
如何在 postgres
中提取 json[{"val":"2","dsk:"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]
其中 dsk 值
它return 空值
SELECT '[{"val":"2","dsk:"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]'::json->'dsk'
如前所述,您不能使用您的方法,因为它是一个数组,但您可以使用 json 函数尝试不同的方法:
WITH data
AS (
SELECT *
FROM json_array_elements('[{"val":"2","dsk":"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]'::json)
)
SELECT value->'dsk'
FROM data
您可以使用 jsonb_path_query_array
函数并从数组中提取整个值
select jsonb_path_query_array('[{"val":"2","dsk":"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]','$[*].dsk')
演示在 DBfiddle