[]
Json Value
和Json Query
是用于处理 JSON 数据的 SQL 函数。JSON_VALUE
用于从 JSON 数据中提取单个标量值,而 JSON_QUERY
则用于提取 JSON 对象或数组。
本文将为您详细介绍Json Value
和Json Query
。
以下通过一个具体的 JSON 示例来说明 JSON_VALUE
和 JSON_QUERY
的用法。
例如,我们来看下边这一段JSON:
{
"a": "[1,2]",
"b": [1, 2],
"c": "hi"
}
在这个例子中,可见a
和c
的值均为字符串类型,而b
的值是一个数组。
那么接下来,我们来看使用Json Value 和Json Query 函数 分别可以返回什么结果:
Path | JSON_VALUE 返回 | JSON_QUERY 返回 |
---|---|---|
$ | NULL or error | { "a": "[1,2]", "b": [1,2], "c":"hi"} |
$.a | [1,2] | NULL or error |
$.b | NULL or error | [1,2] |
$.b[0] | 1 | NULL or error |
$.c | hi | NULL or error |
在实际系统中,JSON_VALUE
和 JSON_QUERY
可以结合其他函数(如表值函数)使用。例如:
使用 JSON_QUERY
提取 JSON 数组 [1, 2]
。
使用表值函数 UnwindJson
将数组展开为多行数据。
首先使用 JsonQuery 返回 [1,2], 然后使用表值函数 UnwindJson 将其展开,如下图所示。
最终的结果为: