我正在构建一个进行一些计算和操作的ETL流程。 在其中一项转型中, 我有一个存储过程,其输出如下:
emp_no | pln_id | cipp | shp |奖金|
我必须将其转换为
emp_no | pln_id | cipp
emp_no | pln_id | shp
emp_no | pln_id |奖金
并存储到文件
答案 0 :(得分:1)
在Postgres中,您可以将列连接到数组中,然后将它们嵌套。这是一个示例:
with proc as
(select column1 emp, column2 currency, column3 cip, column4 shp, column5 bonus
from (values ('emp_no', 'pln_id', 'cipp', 'shp', 'bonus')) as foo)
select emp, currency, unnest(array[cip, shp, bonus]) from proc;
答案 1 :(得分:0)
您可以将存储过程的输出保存到临时表中
CREATE TEMPORARY TABLE stored_proc_output
ON COMMIT DROP
AS select * from my_stored_procedure();
此时,只需运行临时表中的三个选择并将它们保存到文件中即可。