小编ATC*_*ATC的帖子

使用FOR JSON PATH创建嵌套的JSON数组

我需要从一个查询创建一个JSON输出,该查询使用具有一对多关系的两个表之间的内部连接.
我希望将辅助表的值嵌套为主表的数组属性.

请考虑以下示例:

DECLARE @Persons AS TABLE
(
    person_id int primary key,
    person_name varchar(20)
)

DECLARE @Pets AS TABLE
(
    pet_owner int, -- in real tables, this would be a foreign key
    pet_id int  primary key,
    pet_name varchar(10)
)

INSERT INTO @Persons (person_id, person_name) VALUES
(2, 'Jack'),
(3, 'Jill')

INSERT INTO @Pets (pet_owner, pet_id, pet_name) VALUES
(2, 4, 'Bug'),
(2, 5, 'Feature'),
(3, 6, 'Fiend')
Run Code Online (Sandbox Code Playgroud)

并查询:

DECLARE @Result as varchar(max)
SET @Result =
(
SELECT  person_id as [person.id],
        person_name as …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server json sql-server-2016

12
推荐指数
1
解决办法
8456
查看次数

标签 统计

json ×1

sql-server ×1

sql-server-2016 ×1

t-sql ×1