- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表数据
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - UNION vs JOIN
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - CHECK 约束
- SQL - DEFAULT 约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - JSON_VALUE() 函数
SQL 的JSON_VALUE()函数接收一个 JSON 字符串并返回一个标量值。它解码 JSON 字符串并沿着预定的路径提取标量值。路径采用特定的格式,如下所示。
'$' − 指的是整个 JSON 对象。
'$.property1' − 指的是 JSON 对象中的 property1。
'$[2]' − 指的是 JSON 对象中的第二个元素。
'$.property1.property2[4].property3' − 指的是 JSON 对象中的嵌套属性。
语法
以下是 SQL JSON_VALUE() 函数的语法:
JSON_VALUE ( expression , path )
参数
expression − 通常是包含 JSON 文本的列名或变量。
path − 指定要提取的属性的 JSON 路径。如果路径格式无效,JSON_VALUE 将返回错误。
示例
让我们使用以下查询从 JSON 字符串中检索键值:
SELECT JSON_VALUE('{"Name": "TUTORIALSPOINT"}', '$.Name') AS 'Result';
输出
当我们执行上述查询时,将获得以下输出:
+------------------------------------+ | Result| +------------------------------------+ | TUzTORIALSPOINT | +------------------------------------+
示例
在下面的示例中,我们将显式地将 lax 指定给不包含与 JSON 字符串匹配的参数的路径,并使用以下查询检查结果:
SELECT JSON_VALUE('{"Name": "TUTORIALSPOINT"}', 'lax$.firstName') AS 'Result';
输出
当我们执行上述查询时,将获得以下输出:
+------------------------------------+ | Result| +------------------------------------+ | NULL | +------------------------------------+
示例
让我们考虑以下示例,我们将使用以下查询从 JSON 字符串中检索 JSON 数组的第二个值:
DECLARE @iphone VARCHAR(MAX) = '{ "Item":"Iphone13", "Color":["Green", "Pink", "White"] }' SELECT JSON_VALUE(@iphone,'$.Color[1]') AS JSON_Color
输出
当我们执行上述查询时,将获得以下输出:
+------------------------------------+ | JSON_Color | +------------------------------------+ | Pink | +------------------------------------+
示例
让我们考虑另一种情况,我们将通过提及索引位置来检索 JSON 数组中的第一条记录,方法是使用以下查询:
DECLARE @work VARCHAR(4000); SET @work = N'{ "Customers": [ { "Name": "XYZ", "Age": "23", "Address": "101, Sector 5, Gurugram, India", "Salary": 105000 }, { "Name": "ABC", "Age": "34", "Address": "17, Park Avenue, Mumbai, India", "Salary": 780000 } ] }'; SELECT JSON_VALUE(@work, '$.Customers[0].Name') AS 'Name', JSON_VALUE(@work, '$.Customers[0].Age') AS 'Age', JSON_VALUE(@work, '$.Customers[0].Address') AS 'Address', JSON_VALUE(@work, '$.Customers[0].Salary') AS 'Salary';
输出
执行上述查询后,将显示以下输出:
+-------+-----+-------------------------------+-----------+ | Name |Age | Address | Salary | +-------+-----+-------------------------------+-----------+ | XYZ |23 |101, Sector 5, Gurugram, India | 105000 | +-------+-----+-------------------------------+-----------+
示例
让我们考虑另一个示例,我们将使用以下查询从嵌套 JSON 中检索值:
DECLARE @work VARCHAR(4000); SET @work = N'{ "Customers": [ { "Name": "Revi", "Age": "25", "Department": {"course":"HTML", "Field":"IT" "Salary": 100000 }, ] }'; SELECT JSON_VALUE(@work, '$.Customers[0].Name') AS 'Name', JSON_VALUE(@work, '$.Customers[0].Department.Field') AS 'Field';
输出
执行上述查询后,将显示以下输出:
+-------+-----+ | Name |Field| +-------+-----+ | Revi |IT | +-------+-----+
示例
让我们来看下面的例子,我们将使用严格路径并尝试使用以下查询检索输出:
SELECT JSON_VALUE('{"car": "RX100"}', 'strict$.car') AS 'Output';
输出
执行上述查询后,将显示以下输出:
+----------------------------------------------+ | Result | +----------------------------------------------+ | RX100 | +----------------------------------------------+
sql-json-functions.htm
广告