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
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
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
SQL> SELECT
        TO_CHAR(JSON_OVERLAPS('[1, 2, 3]', '3')),
        TO_CHAR(JSON_OVERLAPS('[1, 2, [3]]', '3'));

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

比较纯值

sql
SQL> SELECT TO_CHAR(JSON_OVERLAPS('1', '1')), TO_CHAR(JSON_OVERLAPS('1', '"1"'));

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