查询包含JSON的SQL表列,并根据条件更新该JSON中的值

时间:2017-03-24 18:51:29

标签: sql-server json ssms-2012

此表有大约150万行。特定列包含JSON。我需要做的是查询该JSON的列,然后查询特定的布尔键/对" FLAG"在那个JSON。如果那样" FLAG"是True,我需要将该JSON中的另一个密钥/对更新为Null值而不是当前的字符串。

对我来说这个棘手的部分是我必须查询JSON本身并运行检查。但它不像我可以像其他语言一样索引JSON,它实际上是一个我需要通过sql-regex查询的字符串。关于如何通过手术将第二个密钥/对更新为null,我也有点困惑。

 Json Start: 
 {
    "flag": true,
    "anotherKvP": "some string"
 }
 How I need the Json to be updated to: 
 {
    "flag": true
    "anotherKvP": null
 }

1 个答案:

答案 0 :(得分:0)

所以我最终遇到了一个名为STUFF ( character_expression , start , length , replaceWith_expression )的函数,它允许我将字符串中的字符串塞在一起。那是第二部分。

第一部分,在我的FROM子句中,我选择了我需要分割的值索引,使用PATINDEX ( '%pattern%' , expression )来收集图案化位置的起始索引。

最后,WHERELIKE用于匹配"flag": true的查询。