gpt4 book ai didi

json - 从 postgresql 中的 json 文件的结果中选择字符串

转载 作者:行者123 更新时间:2023-11-29 14:13:49 25 4
gpt4 key购买 nike

在 postgre sql 中,我的表在下面有 json 格式的属性列

{"color": true,"view": [184],"school": 
[805,812,855,856,857]}

我想写一个专栏,如果学校包含 805,812,855 那么 1 否则 0。下面我试过但它不起作用。

 case when  json_extract_path_text(attributes, 'school') in 
[805,812,855] then 1 else 0 end as school

我该如何解决这个问题?谢谢。

最佳答案

您可以使用横向交叉连接为每一行创建一个数组,并查看它是否包含 [805,812,855] 中的值。在这里,我假设您想确保它包含所有值,而不是任何值。

with data as (select * from (values
('{"color": true,"view": [184],"school":[805,812,855,856,857]}'::jsonb),
('{"color": true,"view": [184],"school":[805,812]}'::jsonb)
) as v(data))
SELECT school_arr @> '{805,812,855}'
FROM data
CROSS JOIN LATERAL (SELECT ARRAY(SELECT jsonb_array_elements_text(data -> 'school'))) d(school_arr)
;
?column?
----------
t
f
(2 rows)

关于json - 从 postgresql 中的 json 文件的结果中选择字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com