[英]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.