在PostgreSQL 9.6中,如何从链接下方具有以下结构的表“导入” ...
创建一个查询/函数,然后将其转置为以下内容:
不幸的是,表“ import”没有ID字段。 我尝试将交叉表与tablefunc一起使用,但没有效果。
答案 0 :(得分:2)
您正在寻找交叉表或数据透视表的对立面:您正在寻找无数据透视表
在标准SQL中,您可以使用UNION ALL来执行此操作(除非DBMS支持unpivot
运算符,而Postgres不支持):
select dlimportdate, 1 as colno, col1 as value
from the_table
union all
select dlimportdate, 2, col1
from the_table
union all
...
然而,在Postgres中,有一种更短的方法可以做到这一点。创建一个由列组成的数组,然后使用unnest将它们变成行:
select dlimportdate, t.colno, t.value
from the_table
cross join unnest(array[col1, col2, col3, ...]) with ordinality as t(value, colno);