【发布时间】:2016-06-08 17:00:08
【问题描述】:
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"
]
有人可以帮帮我吗?
【问题讨论】:
-
这是一个严重障碍,因为
FOR JSON没有办法指定“数组路径”,这将使这种转换变得微不足道,无需手动(hackish)构建字符串:指定索引(用于元组)和“最后一个”(用于构建不确定长度的数组的嵌套)的能力。也许 JSON 生成中如此明显的遗漏在 2029 年将是正确的? 叹息
标签: sql json sql-server-2016