我在我的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"
]
}'
我的目标是编写一条SQL查询,使用支持的MS SQL Server JSON函数,以生成一个包含一个列和六行值的表格,这些值位于上面的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
结果必须保留值数组中值出现的顺序。
SELECT [value] from OPENJSON(@json, '$.value') ORDER BY value
- Hasan Mahmoodorder by [key]
。否则,像所有的 SELECT 语句一样,返回的行的顺序是未定义的并且可能会发生变化。 - David Browne - Microsoft