首页 > 解决方案 > 使用 peewee 将行展平为列

问题描述

数据库后端是 postgresqlon gcp。

我在一个表中有一组具有 id 的行。我正在尝试将其展平为具有多列的行。

CREATE TABLE public.lines
(
    line_no int NOT NULL,
    line_content character varying(60) COLLATE pg_catalog."default" NOT NULL,
    parent_id integer NOT NULL,
)

有数据

(1,'content 1',parent1)
(2,'content 2',parent1)
(3,'content 3',parent1)
...

试图找出一个查询以将结果展平为列,

select line1, line2,line3
where parent='parent1'

这要怎么实现??谢谢!!!!

标签: peewee

解决方案


这行不通。Sql 数据库是表格的。您不能随意返回 X 列宽的行。

你最好的选择是使用类似 Postgres 的东西array_agg,它会返回一个数组。如果没有这一点,您可能会使用group_concat或其他东西来生成逗号分隔的列表。

但这闻起来很可能是一个可怕的想法。

如果必须,只需在代码中进行折叠/展平。


推荐阅读