gpt4 book ai didi

sql - JSON_MODIFY 删除数组对象

转载 作者:行者123 更新时间:2023-12-02 17:30:03 24 4
gpt4 key购买 nike

如何从 VARCHAR(MAX) JSON 数组中删除对象?

设置

DECLARE @Json VARCHAR(MAX) =
JSON_QUERY('[{"u":"user1","i":"item1"},{"u":"user2","i":"item2"}]')

SELECT @Json

DECLARE @NewJson VARCHAR(MAX) =
JSON_QUERY('{"u":"user3","i":"item3"}')

SELECT @NewJson

结果

[{"u":"user1","i":"item1"},{"u":"user2","i":"item2"}]

{"u":"user3","i":"item3"}

@NewJson附加到@Json

SELECT JSON_MODIFY(@Json, 'append $', JSON_QUERY(@NewJson))

结果

[{"u":"user1","i":"item1"},{"u":"user2","i":"item2"},{"u":"user3","i":"item3"}]

一切都好。

@Json 中删除索引 0

SELECT JSON_MODIFY(@Json, '$[0]', NULL)

结果

[null,{"u":"user2","i":"item2"}]

我不希望索引 0 为空。我希望将其删除。

我在 the docs 中找不到任何内容说明如何从数组中删除对象。

最佳答案

我没有使用过 json,但是,因为它是一个字符串,所以你可以这样做;

SET @Json = JSON_MODIFY(@Json, '$[0]', NULL);
SET @Json = STUFF(@Json, CHARINDEX ('null,', 5, '');

请注意,我目前无法测试此代码。

关于sql - JSON_MODIFY 删除数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43431151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com