sql-server-2016 - 分别获取每条记录的 JSON 格式的 SQL Server 记录详细信息

标签 sql-server-2016 sql-server-json

我有两张 table 。部门及员工如下:

    Department
    |----------------------|
    |   Id    |   Name     |
    |---------|------------|
    |   10    |    Admin   |
    |---------|------------|
    |   11    |    IT      |
    |---------|------------|
Employee |----------------------|--------------| | Id | Name | DepartmentId | |---------|------------|--------------| | 1 | Peter | 10 | |---------|------------|--------------| | 2 | Scott | 11 | --------------------------------------

I need the JSON details of each department individually as below:

|----------------------|------------------------------------------------------------ |
|   DepartmentId       |   JSONDeatails                                              |
|--------------------- |------------------------------------------------------------ |
|   10                 |{"id": 10,"name": "Admin","Emp": [{"Id": 1,"name": "peter"}]}|
|----------------------|-------------------------------------------------------------|
|   11                 |{"id": 11,"name": "IT","Emp":[{"Id": 2,"name": "scott"}]}    |
|----------------------|-------------------------------------------------------------|

我尝试了下面的查询,它将整个表数据作为一个 JSON 返回。

 SELECT     D.Id, D.name, Emp.Id, Emp.Name FROM Department D
 LEFT JOIN Employee Emp ON D.Id= Emp.DepartmentId FOR JSON AUTO

我收到的回复如下:

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
[{"id": 10,"name": "Admin","Emp": [{"Id": 1,"name": "peter"}]},{"id": 11,"name": "IT","Emp":[{"Id": 2,"name": "scott"}]}]

最佳答案

经过多次试验,我可以找出为每个单独记录提供 JSON 的查询。这是:

SELECT D.Id, 
     (SELECT Di.Id, Di.name ,Emp.Id, Emp.Name FROM Department Di 
        LEFT JOIN Employee Emp ON Di.Id= Emp.DepartmentId 
        WHERE Di.Id = D.id FOR JSON AUTO) AS Details 
FROM Department D

关于sql-server-2016 - 分别获取每条记录的 JSON 格式的 SQL Server 记录详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61714063/

相关文章:

sql - 如何使用SQL对流量日志中访问源的事件进行归因?

sql-server - 使用 TFS 命令行部署 SSIS 项目

sql-server - SQL Server : group by column with another column

json - 测试嵌套 JSON 数组中是否存在值

sql - 选择嵌套 JSON 数组包含特定值的行

sql - 如何使SQL表的字段值成为SQL中JSON对象的键?

xml - 查询SQL Server 2016数据库中的XML数据

sql-server - SQL Server JSON_Modify,如何更新全部?

json - 无法使用 OPENJSON 和 SQL Server 2017 解析具有动态键的对象数组

sql-server - 将 datetimeoffset 转换为 varchar