当前位置: 首页 > article >正文

15.postgresql--jsonb 数组进行打平,过滤

用jsonb_array_elements函数先展开数组,再用jsonb_each函数遍历元素中的键值对

例如:

SELECT *
FROM data_table,
LATERAL jsonb_array_elements(json_column) WITH ORDINALITY as elem(element, idx)
JOIN LATERAL jsonb_each(elem.element) as kv(key, value) ON TRUE
WHERE kv.key = 'key_to_find' AND kv.value > 10;

name |rule_types |
------±---------------------------------------------------------------+
TIKTOK|[{“key”: “A”, “name”: “NAME_A”}, {“key”: “B”, “name”: “NAME_B”}]|
SHANG |[{“key”: “A”, “name”: “NAME_A”}, {“key”: “B”, “name”: “NAME_B”}]|
OTHER |[{“key”: “C”, “name”: “NAME_C”}, {“key”: “D”, “name”: “NAME_D”}]|

SELECT *
FROM ecomm.ywl_test ,
LATERAL jsonb_array_elements(rule_types) WITH ORDINALITY as elem(element, idx)
JOIN LATERAL jsonb_each(elem.element) as kv(key, value) ON TRUE

在这里插入图片描述在这里插入图片描述
过滤

  SELECT *
FROM ecomm.ywl_test ,
LATERAL jsonb_array_elements(rule_types) WITH ORDINALITY as elem(element, idx)
JOIN LATERAL jsonb_each(elem.element) as kv(key, value) ON TRUE
WHERE kv.key = 'key' AND kv.value ='"A"';

http://www.kler.cn/a/411692.html

相关文章:

  • 18:(标准库)DMA二:DMA+串口收发数据
  • 异或操作解决一些问题
  • 【附录】Rust国内镜像设置
  • 【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图
  • Github 2024-11-26 Python开源项目日报Top10
  • C#里怎么样使用BinaryReader和BinaryWriter类?
  • MATLAB 中有关figure图表绘制函数设计(论文中常用)
  • 英语知识在线教学:Spring Boot网站构建
  • ✅ Qt流式布局
  • Spring |(五)IoC/DI的注解开发
  • 神经网络中的损失函数(Loss Function)
  • 2024赣ctf-web -wp
  • 林业产品推荐:Spring Boot技术解读
  • Docker实践与应用实例:从入门到精通
  • JVM系列之OOM观测准备
  • Rust sqlx包访问sqlite数据库
  • 无需代理 调用OpenAI的大模型API接口(Python)
  • Unity图形学之菲尼尔色散Fresnel
  • Bitcoin---Script Language;脚本类型
  • Python设计模式详解之15 ——迭代器模式