小编Hak*_*a N的帖子

将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"
                    ]
                }'
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)

结果必须保留值在值数组中出现的顺序。

sql t-sql sql-server json

3
推荐指数
1
解决办法
144
查看次数

标签 统计

json ×1

sql ×1

sql-server ×1

t-sql ×1