PGSQL如何实现列转行?

229 阅读1分钟

最近有一个项目从SQLSERVER2016迁移到PGSQL中,以前有一个列转行的需求,但是被测试发现了,报错了,这一想也知道是数据库的原因,因为以前都不报错。

首先我们看要实现的功能场景是什么样的

实现功能之前

image.png

实现功能之后

image.png

代码提取

SELECT array_to_string(array_agg(distinct opb.work_order_item_id),',')
FROM order_process_bom opb
         LEFT JOIN material m on m.id = opb.material_id
         LEFT JOIN material_category mc on mc.id = m.material_category_id;