SQL JSON_QUERY()函数

SQL JSON_QUERY()函数

内置的SQL JSON_QUERY() 函数用于从JSON对象中提取数据。该函数用于从JSON字符串或表中的列中提取标量(单个)值或整个JSON对象。

如果在找到路径之前发现不合法的JSON表达式,JSON_QUERY()会返回错误,并且如果它不是对象或数组,则以不同的模式返回值,如下所示:

  • 在宽松模式下,JSON_QUERY返回null。

  • 在严格模式下,JSON_QUERY返回错误。

语法

以下是SQL JSON_QUERY()函数的语法:

JSON_QUERY ( expression [ , path ] )

参数

  • expression - 通常是列的名称或包含JSON文本的变量的名称。

  • path - 指定要提取的属性的JSON路径。JSON路径可以是宽松或严格模式进行解析。如果未指定解析模式,默认为宽松模式。

示例

通过以下查询,我们可以从JSON变量中检索第一个客户端 –

DECLARE @work VARCHAR(4000);
SET @work = N'{"customers":
   [
      {"Name": "HELLO", "Age": 23, "Department": "Mechnical"},
      {"Name": "WORLD", "Age": 25, "Department": "BBA"}
   ]
}';
SELECT JSON_QUERY(@work, '$.customers[0]') AS Result;

输出

当我们执行上述查询时,输出如下所示−

+---------------------------------------------------------+
|                                                Result   |
+---------------------------------------------------------+
| {"Name": "HELLO", "Age": 23, "Department": "Mechnical"} |
+---------------------------------------------------------+

示例

在下面的示例中,我们将指定松散路径模式以返回标量值,但由于JSON_QUERY()不支持标量值,所以它返回NULL,它只返回对象和数组。-

SELECT JSON_QUERY('{"car": "RX100"}', 'lax $.car') AS 'Result';

输出

当我们执行上述查询时,得到的输出如下所示 –

+------------------------------------+
|                              Result|
+------------------------------------+
|                               NULL |
+------------------------------------+

示例

让我们考虑另一种情况,我们将使用严格路径模式,并通过以下查询获取输出:

SELECT JSON_QUERY('{"car": "RX100"}', 'strict $.car') AS 'Result';

输出

当我们执行上述查询时,输出结果如下:-

Object or array cannot be found in the specified JSON path.

示例

让我们来看一个示例,在这个示例中,我们将使用以下查询来提取列 –

DECLARE @work VARCHAR(150)
   = '{"Item":"Iphone 13",
      "Price":70000,
      "Color":["Green", "Pink", "White"]}'
SELECT JSON_QUERY(@work,'$.Color') AS Result

输出

执行上述查询后,输出如下所示−

+----------------------------------------------+
|                                       Result |
+----------------------------------------------+
|                   ["Green", "Pink", "White"] |
+----------------------------------------------+

示例

让我们考虑另一个情况,我们将从JSON字符串中检索标量值,并通过以下查询来检查结果-

DECLARE @work VARCHAR(150)
   = '{"Item":"Iphone 13",
   "Price":70000,
   "Color":["Green", "Pink", "White"]}'
SELECT JSON_QUERY(@work,'$.Item') AS Result

输出

执行上述查询后,输出结果如下所示 –

+------------------------------------+
|                              Result|
+------------------------------------+
|                               NULL |
+------------------------------------+

示例

让我们看一个示例,在这个示例中,我们将使用以下查询来检索完整的JSON字符串 –

DECLARE @work VARCHAR(150)
   = '{"Item":"Iphone 13",
   "Price":70000,
   "Color":["Green", "Pink", "White"]}'
SELECT JSON_QUERY(@work,'$') AS Result

输出

执行上述查询后,输出结果如下所示 –

+----------------------------------------------------------------------------------------------------------------+
|                                                                                               Result           |
+----------------------------------------------------------------------------------------------------------------+
| {"Item":"Iphone 13",              "Price":70000,             "Color":["Green", "Pink", "White"]}               |
+----------------------------------------------------------------------------------------------------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程