SQL 2016 有一项新功能,可将 SQL 服务器上的数据转换为 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"
]
有人可以帮帮我吗?
最佳答案
谢谢!我们发现的灵魂是先转换成 XML -
SELECT
JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"'
FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids
FOR JSON PATH , WITHOUT_ARRAY_WRAPPER
https://stackoverflow.com/questions/37708638/