📜  postgresql 将子查询显示为 json - SQL (1)

📅  最后修改于: 2023-12-03 14:45:35.824000             🧑  作者: Mango

PostgreSQL: 将子查询显示为 JSON

在 PostgreSQL 中,可以将查询结果转换为 JSON 格式,方便数据的传输和解析。本篇文章主要讲解如何将子查询的结果显示为 JSON 格式。

1. 基础语法

使用 json_agg 函数将查询结果转换为 JSON 数组,然后使用 json_build_object 函数将其封装到一个 JSON 对象中。

语法如下:

SELECT json_build_object(
    'key', json_agg(subquery_result)
)
FROM subquery;

其中,key 表示 JSON 对象的键名,subquery_result 表示子查询的查询结果。

2. 示例

以下示例将 employees 表中 department_id 为 1 的员工按 salary 从高到低排序,然后将结果显示为 JSON 格式。

SELECT json_build_object(
    'employees', json_agg(
        json_build_object(
            'name', name,
            'salary', salary,
            'hire_date', hire_date
        )
    )
)
FROM (
    SELECT name, salary, hire_date
    FROM employees
    WHERE department_id = 1
    ORDER BY salary DESC
) subquery;

执行结果如下:

{
  "employees": [
    {
      "name": "John Doe",
      "salary": 100000,
      "hire_date": "2015-01-01"
    },
    {
      "name": "Jane Doe",
      "salary": 80000,
      "hire_date": "2018-01-01"
    }
  ]
}
3. 总结

本篇文章介绍了如何将子查询的结果显示为 JSON 格式,并给出了相应的语法和示例。在 PostgreSQL 中,使用 JSON 格式可以方便地对数据进行传输和解析,更好地适应现代应用程序的需求。