sql - 将 mssql openjson 数组类型值结果转换为表?
问题描述
我的 Microsoft (MS) SQL Server 查询中有一个 json 对象。这个 JSON 对象确实有一个值,它是一个字符串数组。
--this variable holds my JSON object with a value of array type.
declare @json nvarchar(max) = N'{
"value": [
"tapiwanashe",
"robert",
"emmerson",
"ruwimbo",
"takudzwa",
"munyaradzi"
]
}'
我的目标是使用支持的 MS SQL Server JSON 函数编写一个 SQL 查询,该函数生成一个表,其中包含上面 JSON 对象值数组中的一列和六行值。
我试图运行 JSON_QUERY 和 OPENJSON 函数。但是,这两个函数都返回一个字符串数组作为输出。我想要一个一列六行的结果。
select JSON_QUERY(@json, '$.value')
select [value] from OPENJSON(@json)
我得到的结果是:
value
---------------
[
"tapiwanashe",
"robert",
"emmerson",
"ruwimbo",
"takudzwa",
"munyaradzi"
]
但是,我期望得到的结果如下所示:
value
-----------
tapiwanashe
robert
emmerson
ruwimbo
takudzwa
munyaradzi
结果必须保留值出现在值数组中的顺序。
解决方案
像这样:
declare @json nvarchar(max) = N'{
"value": [
"tapiwanashe",
"robert",
"emmerson",
"ruwimbo",
"takudzwa",
"munyaradzi"
]
}'
select value
from openjson(@json,'$.value')
order by [key]
输出
value
----------
tapiwanashe
robert
emmerson
ruwimbo
takudzwa
munyaradzi
推荐阅读
- react-native - onChange 文本未更新其状态
- c# - 预制件不会为不同的玩家同步
- c# - 异步等待方法调用外部资源或返回本地字符串
- c# - Azure 函数 SignalR | 协商功能 | 失败并显示 500 错误代码
- python - Message.content.split() Discord.PY
- javascript - 如何在滚动时让一个项目 div 移动而其他项目不移动?
- python - 为什么 while 循环中的缩进会产生问题?
- android - 当我使用 OOB 与蓝牙设备配对时,未来的通信是否加密?
- android - 文档中的某些字段可能为空,如果我尝试获取结果,App 会因为 nullPointerException 而崩溃
- java - 配置 G1G1 AggressiveHeap