2017-03-17 64 views
0

我,让我一个text[]作为结果的功能,输出看起来像这样Postgres的:如何在使用文本[]函数的结果作为参数的SELECT

tables_array          
---------------------------------------------------- 
{mon11,mon10,mon9,mon8,mon7,mon6,mon5,mon4,mon3,mon2,mon1} 

现在我想使用在另一个函数输出SELECT

SELECT 
    tables_array('1') 
from 
    abc; 

,但我得到了

{mon11,mon10,mon9,mon8,mon7,mon6,mon5,mon4,mon3,mon2,mon1} 

FO [R在表中的每个条目abc

所以我用

SELECT 
    array_to_string(tables_array('1'), ',') 
from 
    abc; 

,但现在我得到

tables_array          
---------------------------------------------------- 
mon11,mon10,mon9,mon8,mon7,mon6,mon5,mon4,mon3,mon2,mon1 

在表abc每个条目,再次

我曾尝试与其他几种组合它会以语法错误或错误结果结尾。

编辑1:我希望得到的结果是这个样子:

mon11 mon10  mon9  mon8 
-------------------------------- 
0.070 0.0013 0.091908 0.26 

编辑2:

修正了一些错误的函数命名

+0

当您尝试从abc'中选择tables_array('1')时,您是否想从数组中获取第一个元素?这是你的目标吗? –

+0

不,'1'是从功能返回多少年,如果我放入例如一个3然后返回是mon11 ... mon1,y2015,y2014,y2013 – aldr

+2

那么你想要什么结果? –

回答

0

显示这个例子,也许有帮助为你

select unnest((select array['ax','dsf','qwe'])) 
+0

我试图UNNEST,但它简单地重复上述行为UNNEST MON1 MON2 MON3 MON1 MON2 MON3从hoizontal到垂直 – aldr

0

这应该使用的输出值作为另一参数工作选择:

select t.months[1] --to get first value 
from abc h, 
LATERAL(select * from tables_array()) t(months) 

这将作为交叉连接。

相关问题