SQL Server FOR JSON路径嵌套数组

cod*_*lue 6 sql-server sql-server-json

我们尝试在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
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[{
A:"text",
   "child:"[
         {"name":"value", "date":"value"},
         {"name":"value", "date":"value"}

       ]
}]
Run Code Online (Sandbox Code Playgroud)

但是我们得到的是:

 [{
    A:"text",
    "child:" {"name":"value", "date":"value"}
  },
{
   A:"text",
  "child":{"name":"value", "date":"value"}
}]
Run Code Online (Sandbox Code Playgroud)

我们如何使用FOR JSON PATH来形成嵌套的子数组.

gor*_*rdy 5

而不是 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
Run Code Online (Sandbox Code Playgroud)

(问题中的查询被破坏了,所以这个查询同样被破坏,但应该给你这个想法)