2017-03-17 43 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) 

這將作爲交叉連接。

相關問題