sql-server-2016 - 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
我能想到的唯一另一种方法就是进行字符串操作,但这很容易出错。有人可以帮忙吗?
解决方案
好的,想通了。发布答案以防将来有人需要它。
select
json_query('[{"Message":"Info: this is some message here.","Active":true}]', '$[0]')
这将返回内部消息。
推荐阅读
- flutter - 在 Android 上开始录制视频时 Flutter 相机冻结
- c# - 使用 C# 从 Table 中找不到的文件夹中删除图像
- google-analytics - 在 Google Analytics 中删除另一个网站数据
- javascript - Fabric.js 小圆圈限制在画布中心的半径范围内
- javascript - 如何使用 Mongoose 过滤器显示嵌套数组中的数据?
- c++ - 串行端口编码
- excel - 粘贴导致 VBA 行为不合逻辑
- python - pandas中excel中的匹配索引函数
- notepad++ - Notepad ++在find diolouge中选择两行
- web-services - 在 ColdFusion 中使用二进制安全令牌生成 Web 服务安全性