2015-11-01 93 views
0

我使用的是Postgres 9.1,我有一個函數使用row()函數返回record數據類型。如何在Postgres記錄數據類型中提取節點

舉個簡單的例子,嘗試:

select row(1,2,3); 

它會返回一個單細胞一行 「(1,2,3)」 在裏面。

在我更復雜的函數,它返回一個地理編碼和其他數據,如:

(90,"Sydney, Australia",0.431951065304161,151.208784,-33.873982)

所以我試圖做的是弄清楚如何精確每個節點值的這個「行「或」數組「(無論技術上是否正確)。

任何人都可以幫助,這將不勝感激。

回答

1

實例功能:

create or replace function a_function() 
returns record language sql as $$ 
    select 90, 'Sydney, Australia'::text, 0.431951065304161, 151.208784, -33.873982; 
$$; 

select a_function(); 

          a_function        
------------------------------------------------------------------ 
(90,"Sydney, Australia",0.431951065304161,151.208784,-33.873982) 
(1 row) 

你應該從第一個字段定義列表調用函數中:

select * 
from a_function() as (id int, city text, num1 numeric, num2 numeric, num3 numeric); 

id |  city  |  num1  | num2 | num3  
----+-------------------+-------------------+------------+------------ 
90 | Sydney, Australia | 0.431951065304161 | 151.208784 | -33.873982 
(1 row) 
相關問題