You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle查询JSON整数数组列:筛选数组包含指定元素的行

解决方案

Oracle 12c及以上版本原生支持JSON查询操作,你可以使用JSON_EXISTS函数实现数组元素存在性校验,对应的查询语句如下:

SELECT * 
FROM orders
WHERE JSON_EXISTS(products, '$[*]?(@ == 8)');

语法说明

  • $[*] 表示遍历products列存储的JSON数组中所有元素
  • ?(@ == 8) 是过滤规则,其中@指代当前遍历到的数组元素,当存在任意元素值等于8时,JSON_EXISTS返回真值,该行会被筛选出来

如果你需要同时对数组元素做更多处理,也可以使用JSON_TABLE将数组拆分为行再过滤:

SELECT DISTINCT o.*
FROM orders o,
JSON_TABLE(o.products, '$[*]' COLUMNS (product_val NUMBER PATH '$')) jt
WHERE jt.product_val = 8;

内容的提问来源于stack exchange,提问作者rbehzadan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:24:03