SQL Server FOR JSON路径嵌套数组

时间:2017-08-18 00:19:23

标签: 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

期望的输出:

[{
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来形成嵌套的子数组。

1 个答案:

答案 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

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