首页 > 解决方案 > SQL Server 从 JSON 中提取第一个数组元素

问题描述

我将 json 存储在 SQL Server 的一列中,我需要对其进行修改以从中删除方括号。格式如下。似乎找不到一个好的方法来做到这一点。

[ { "Message":"Info: this is some message here.", "Active":true } ]

一种方法是使用下面的查询来完成,但是这个查询非常慢,我需要在非常大的数据集上运行。

select a.value
from dbo.testjson e
cross apply OPENJSON(e.jsontext) as a
where isjson(e.jsontext) = 1

我能想到的唯一另一种方法就是进行字符串操作,但这很容易出错。有人可以帮忙吗?

标签: sql-server-2016

解决方案


好的,想通了。发布答案以防将来有人需要它。

select 
    json_query('[{"Message":"Info: this is some message here.","Active":true}]', '$[0]')

这将返回内部消息。


推荐阅读