Sql 取消对表Postgres的数组

Sql 取消对表Postgres的数组,sql,arrays,postgresql,Sql,Arrays,Postgresql,如何在Postgres中取消数组到表格式的设置 这些是我创建的类型 create type ngfcst.test1 as (territory character varying, territoryname character varying, parentname character varying, parentterritory character varying, lowest_level_flag character varying, count bigint); 我正在使用此

如何在Postgres中取消数组到表格式的设置 这些是我创建的类型

create type ngfcst.test1 as (territory character varying, territoryname character varying, parentname character varying, parentterritory character varying, lowest_level_flag character varying, count bigint);

我正在使用此类型执行数组_agg以返回结果集。下面是函数test12的示例输出:

select * from test12(
    'some_parameters');
OUTPUT (2 records):
{"(\"rec11",rec12,\"rec13",\"rec14\",rec15,1)","(\"rec21\",rec22,\"rec23\",\"rec24\",rec25,2)"}
我希望数据采用正确的表格格式,但这样做无助于:

with main as(
    select * from  test12(
    'some_parameters'))
    select unnest(o_show_proxy::ngfcst.test1[]) as unnest_col from main;
这会分隔记录,但不会分隔列。 我希望以行和列的格式输出,正如我们从下面的查询中得到的:

select * from unnest(array[row('row11','row12','row13','row14','row15',1),
              row('row21','row22','row23','row24','row25',2)]::ngfcst.test1[])

让我知道是否有任何方法可以获得行和列格式的输出。

此处
交叉连接横向
将有所帮助--

基于你的例子。考虑到函数
test12()
正在根据用户定义的类型
test1
返回正确的数组形式

试试这个:

with cte as(
    select * from  test12(
    'some_parameters')
)
    select t.* from cte cross join lateral unnest(cte.o_show_proxy::test1[]) t;


您的示例输出不一致。请检查一下Excellent,非常感谢,这是perfectHi Akhilesh,我一直在阅读交叉连接横向功能以及在哪里使用它,但我无法理解它是如何工作的。你能帮我看一下吗