簡體   English   中英

來自 SQL Server 2016 的嵌套 JSON

[英]Nested JSON from SQL Server 2016

我有如下表所示的數據

1
1

我正在嘗試在 SQL Server 2016 中使用FOR JSON PATH生成一個 JSON 並獲取如下所示的 JSON:

[
   {
      "X":1,
      "VAL":{
         "Y":"A"
      }
   },
   {
      "X":1,
      "VAL":{
         "Y":"B"
      }
   }
]

但我期待一些看起來像組合的東西,如下所示。

[
   {
      "X":1,
      "VAL":{
         "Y":"A",
         "Y":"B"
      }
   }
]

有人可以幫助我如何在 SQL Server 2016 中實現這一目標嗎? 到目前為止,我已經嘗試通過連接獲得一個嵌套的 JSON。

;WITH CTE (X,Y) AS 
(
    SELECT 1 , 'A'
    UNION ALL
    SELECT 1 , 'B'
)
SELECT   
    A.X, B.Y AS 'VAL.Y' 
FROM 
    CTE A 
INNER JOIN 
    CTE B ON A.X = B.X AND A.Y = B.Y 
FOR JSON PATH

嘗試這樣的事情:

declare @t table (X int, Y varchar(1));

insert into @t(x,y)
values (1,'A'), (1,'B');

with l1 as (select distinct x from @t)
select l1.X, VAL.Y
from l1 join @t as VAL on l1.x = VAL.x
for json auto, without_array_wrapper

CTE 將從第一列中列出不同的值,然后通過此列將其與主表連接。 FOR JSON AUTO 將嵌套結果並為您提供所需的結構。 結果是:

{
   "X":1,
   "VAL":[
      {
         "Y":"A"
      },
      {
         "Y":"B"
      }
   ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM