【发布时间】:2020-12-01 07:48:00
【问题描述】:
如果我有这个 JSON
{
"hello1": "1",
"hello2": "2"
}
我想从这个 JSON 更新它
{
"hello2": "3"
}
我希望结果是
{
"hello1": "1",
"hello2": "3"
}
有没有一种方法可以在不需要遍历 SQL 中的每个字段的情况下做到这一点?
我目前的尝试是像这样手动更新每个值:
SET @OldJSON = JSON_MODIFY(
@OldJSON,
'$.hello1',
ISNULL(JSON_VALUE(@JSON,'$.hello1'), JSON_VALUE(@OldJSON,'$.hello1'))
)
【问题讨论】:
-
它的 MS SQL Server
-
@Hasan
...without the need to go through every field...是什么意思? -
请向我们展示您的尝试 - SO 不是代码编写服务。
-
我什么都没尝试,我打算像这样手动更新每个值,
SET @OldJSON = JSON_MODIFY(@OldJSON,'$.hello1', ISNULL(JSON_VALUE(@JSON,'$.hello1'), JSON_VALUE(@OldJSON,'$.hello1'))),但我希望找到某种动态方式,我只会说SET @OldJSON = SomeKindOfMethodHere(@JSON) -
@Hasan 新的 JSON 是否总是包含一对
key\value以及您的 SQL Server 版本是多少?
标签: sql json sql-server sql-server-2019