JSON_DEPTH
📄字数 541
👁️阅读量 加载中...
功能描述
返回JSON文本最大深度。
语法格式
sql
JSON_DEPTH( json_doc )输入参数
json_doc:JSON文本,JSON类型或字符类型。
输出结果
INTEGER类型。任意参数为NULL时,输出结果为NULL。
提示
- 空数组、空对象或标量值的深度为1。
- 包含深度为1元素的非空数组,或仅包含深度为1成员的非空对象,深度为2。
- 除上述情况外,其他
json_doc深度大于2。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 0 | 函数只能在本地计算 |
| VOLATI | 0 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
sql
-- 空数组、空对象或标量值
SQL> SELECT JSON_DEPTH('{}'), JSON_DEPTH('[]'), JSON_DEPTH('1');
+-------+-------+-------+
| EXPR1 | EXPR2 | EXPR3 |
+-------+-------+-------+
| 1 | 1 | 1 |
+-------+-------+-------+
-- 包含深度为1元素的非空数组,或仅包含深度为1成员的非空对象。
SQL> SELECT JSON_DEPTH('[1, 2]'), JSON_DEPTH('{"x": 1}');
+-------+-------+
| EXPR1 | EXPR2 |
+-------+-------+
| 2 | 2 |
+-------+-------+
-- 包含深度超过1的元素的数组,所有成员的值的深度超过1的对象。
SQL> SELECT JSON_DEPTH('[1, [2, 3]]'), JSON_DEPTH('{"x": {"y": 1}}'), JSON_DEPTH('{"x": {"y": {"z": 1}}}');
+-------+-------+-------+
| EXPR1 | EXPR2 | EXPR3 |
+-------+-------+-------+
| 3 | 3 | 4 |
+-------+-------+-------+