📜  tsql 替换 json 中的值 - SQL (1)

📅  最后修改于: 2023-12-03 15:35:22.942000             🧑  作者: Mango

替换 JSON 中的值

在某些情况下,需要更新或替换 JSON 中的值。在 SQL Server 中,可以使用 T-SQL 中提供的相关函数和语法来实现这一功能。

函数

以下是在 T-SQL 中更新或替换 JSON 值时常用的一些相关函数:

  • JSON_MODIFY: 用于更新 JSON 中的值,其语法如下:

    JSON_MODIFY ( expression , path , newValue )
    

    其中,expression 是要修改的 JSON,path 表示要修改的值的路径,newValue 表示新的值。

  • JSON_QUERY: 用于获取 JSON 中的值,其语法如下:

    JSON_QUERY ( expression , path )
    

    其中,expression 是要查询的 JSON,path 表示要查询的值的路径。

  • JSON_VALUE: 用于获取 JSON 中的标量值,其语法如下:

    JSON_VALUE ( expression , path )
    

    其中,expression 是要查询的 JSON,path 表示要查询的值的路径。

示例

假设有一个表 Users,其中包含用户的信息:

CREATE TABLE Users (
    UserId INT PRIMARY KEY,
    Info NVARCHAR(MAX)
);

INSERT INTO Users (UserId, Info)
VALUES (1, '{"name": "John", "age": 25, "email": "john@example.com"}'),
       (2, '{"name": "Mary", "age": 30, "email": "mary@example.com"}');

现在需要更新 ID 为 1 的用户的年龄为 30,可以使用以下 SQL 语句来实现:

UPDATE Users
SET Info = JSON_MODIFY(Info, '$.age', 30)
WHERE UserId = 1;

如果需要查询 ID 为 1 的用户的邮箱地址,可以使用以下 SQL 语句:

SELECT JSON_VALUE(Info, '$.email')
FROM Users
WHERE UserId = 1;

以上 SQL 语句将返回 john@example.com

小结

通过 T-SQL 中相关的函数和语法,我们可以轻松地更新或替换 JSON 中的值。这些函数非常强大且易于使用,可以满足大多数场景下的需要。