Hak*_*a N 3 sql t-sql sql-server json
我在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"
]
}'
Run Code Online (Sandbox Code Playgroud)
我的目标是使用受支持的MS SQL Server JSON函数编写一个SQL查询,该函数将在上面的JSON对象值数组中生成一个包含一列和六行值的表。
我试图运行JSON_QUERY和OPENJSON函数。但是,这两个函数都返回一个字符串数组作为输出。我想得到一列六行的结果。
select JSON_QUERY(@json, '$.value')
Run Code Online (Sandbox Code Playgroud)
select [value] from OPENJSON(@json)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
value
---------------
[
"tapiwanashe",
"robert",
"emmerson",
"ruwimbo",
"takudzwa",
"munyaradzi"
]
Run Code Online (Sandbox Code Playgroud)
但是,我期望得到的结果如下所示:
value
-----------
tapiwanashe
robert
emmerson
ruwimbo
takudzwa
munyaradzi
Run Code Online (Sandbox Code Playgroud)
结果必须保留值在值数组中出现的顺序。
像这样:
declare @json nvarchar(max) = N'{
"value": [
"tapiwanashe",
"robert",
"emmerson",
"ruwimbo",
"takudzwa",
"munyaradzi"
]
}'
select value
from openjson(@json,'$.value')
order by [key]
Run Code Online (Sandbox Code Playgroud)
输出
value
----------
tapiwanashe
robert
emmerson
ruwimbo
takudzwa
munyaradzi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |