Sql 取消对表Postgres的数组
如何在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); 我正在使用此
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,我一直在阅读交叉连接横向功能以及在哪里使用它,但我无法理解它是如何工作的。你能帮我看一下吗