我们尝试在SQL Server 2016中使用FOR JSON Path从SQL查询中形成嵌套数组。
SQL查询:
SELECT A,
B.name as [child.name],
B.date as [child.date]
from Table 1 join Table 2 on Table 1.ID=Table 2.ID FOR JSON PATH
期望的输出:
[{
A:"text",
"child:"[
{"name":"value", "date":"value"},
{"name":"value", "date":"value"}
]
}]
然而,我们得到的是:
[{
A:"text",
"child:" {"name":"value", "date":"value"}
},
{
A:"text",
"child":{"name":"value", "date":"value"}
}]
我们如何使用FOR JSON PATH来形成嵌套的子数组。
答案 0 :(得分:4)
而不是join使用嵌套查询,例如:
SELECT A
, child=(
SELECT B.name as [child.name]
, B.date as [child.date]
FROM Table 2
WHERE Table 2.ID = Table 1.ID
FOR JSON PATH
)
from Table 1 FOR JSON PATH
(问题中的查询被破坏了,所以这个查询就像破了但是应该给你一个想法)