一尘不染

SQL to JSON-SQL 2016中的对象数组到值数组

json

SQL 2016具有一项新功能,可将SQL Server上的数据转换为JSON。我很难将对象数组组合成值数组,即

示例-

CREATE TABLE #temp (item_id VARCHAR(256))

INSERT INTO #temp VALUES ('1234'),('5678'),('7890')

SELECT * FROM #temp

--convert to JSON

SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH,root('ids'))

结果-

{
    "ids": [{
        "item_id": "1234"
    },
    {
        "item_id": "5678"
    },
    {
        "item_id": "7890"
    }]
}

但我希望结果为-

"ids": [
        "1234",
        "5678",
        "7890"
    ]

有人可以帮我吗?


阅读 318

收藏
2020-07-27

共1个答案

一尘不染

谢谢!我们发现的灵魂是首先转换为XML-

SELECT  
JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' 
FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids  
FOR JSON PATH , WITHOUT_ARRAY_WRAPPER
2020-07-27