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

最终的结果为:
