sql - 将 value = NULL 的新键添加到现有的 JSON 对象

标签 sql json sql-server tsql

我有以下简单的 JSON 对象:

{
    "application": {
        "status": "XXX"
    }
}

我想在名为“approve_date”的应用程序下添加一个新 key ,并希望该值为 NULL。有没有办法用 JSON_MODIFY 做到这一点? .我尝试在路径中使用“追加”,但这添加了一个数组,而不是一个键(下面的示例)。

JSON_MODIFY(data, 'append $.application.approve_date', null)

(A) 向 JSON 添加新键和 (B) 使其成为 NULL 值的更好方法是什么?

最佳答案

NULL的行为因模式而异,因此,一个技巧是使用 JSON_MODIFY 结合松散(添加键)和严格模式(将值设置为空)。

SELECT
    JSON_MODIFY(
        JSON_MODIFY(
            '{"application":{"status":"XXX"}}',
            '$.application.approve_date',
            ''
        ), -- {"application":{"status":"XXX","approve_date":""}}
        'strict $.application.approve_date',
        NULL
    ) -- {"application":{"status":"XXX","approve_date":null}}

关于sql - 将 value = NULL 的新键添加到现有的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59038499/

相关文章:

SQL 替换智能引号

mysql - Rails 应用程序中 mysql 查询性能缓慢

sql - 如何在 Toad for Oracle 中显示当前日期和时间?

c# - .NET WebApi如何防止 "$ref": "x" output of JSON

java - 在 Spring Boot 中使用任意 JSON 数据

c# - 无法使用 C# 将数据导入 SQL Server 数据库

数据库 |查询为员工分配的休假和休假,并应显示休假类别

sql-server - 如何知道一条sql Update语句执行成功还是失败?

sql - 在 "removing"尾随空格后选择不同的

json - Spark 2.1.1 : Parsed JSON values do not match with class constructor