Skip to content

JSON_OVERLAPS

功能描述

比较两个JSON文档,测两个 JSON 文档是否拥有任何一个相同键值对或数组元素。

语法格式

JSON_OVERLAPS( json_doc1, json_doc2 )

参数说明

两个JSON文本,JSON类型或JSON String类型。

说明:

  • 如果任意参数为NULL返回NULL。
  • json_doc不为有效JSON文本将抛出错误。
  • 如果两个JSON文档有任何共同的键值对或数组元素,则返回1。
  • 如果两个JSON文档为标量,则对比两值,相等返回1。

函数返回类型

INTEGER数值类型

示例

sql
SQL> SELECT TO_CHAR(JSON_OVERLAPS('[1,3,4,5]', '[3,9,10]'));

EXPR1 | 
------------------------------------------------------------------------------
1|

-- 比较数组
SELECT TO_CHAR(JSON_OVERLAPS('[1, 2, 3]', '[3, 4, 5]'));

EXPR1 | 
------------------------------------------------------------------------------
1|

SQL> SELECT TO_CHAR(JSON_OVERLAPS('[1, 2, [3]]', '[3, 4, 5]'));

EXPR1 | 
------------------------------------------------------------------------------
0|

-- 比较对象
SQL> SELECT
        TO_CHAR(JSON_OVERLAPS('{"x": 1}', '{"x": 1, "y": 2}')),
        TO_CHAR(JSON_OVERLAPS('{"x": 1}', '{"y": 2}'));

EXPR1 | EXPR2 | 
------------------------------------------------------------------------------
1| 0|

-- 比较纯值和数组
SQL> SELECT
        TO_CHAR(JSON_OVERLAPS('[1, 2, 3]', '3')),
        TO_CHAR(JSON_OVERLAPS('[1, 2, [3]]', '3'));

EXPR1 | EXPR2 | 
------------------------------------------------------------------------------
1| 0|

-- 比较纯值
SQL> SELECT TO_CHAR(JSON_OVERLAPS('1', '1')), TO_CHAR(JSON_OVERLAPS('1', '"1"'));

EXPR1 | EXPR2 | 
------------------------------------------------------------------------------
1| 0|