2017-08-18 20 views
4

SQLクエリからネストされた配列を作成するために、SQL Server 2016でFOR JSON Pathを使用しようとしています。SQL Server FOR JSONパスネストされた配列

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"} 
}] 

どのように我々は、ネストされた子のアレイを形成するためにJSONのパスに使用することができます。

答えて

0

の代わりに使用ネストされたクエリ、例えば加入:

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 

(問題のクエリはので、このクエリは壊れ同じように壊れAFをされているが、あなたのアイデアを与える必要があります)

+0

をあなたに感謝のゴーディ返信..しかし、私はジョインを使用してこれを行う方法を探していた..私のクエリがはるかに大きく、ジョインと内部結合を残しているので。 –

+0

また、「child」の値も取得していません.AはJSONにのみ存在します。 –

関連する問題