2015-10-01 126 views
1

我在PostgreSQL新的,我在PostgreSQLPostgreSQL的投陣列二維

WITH intarr AS (
    SELECT 
     ARRAY [ s.days,s.hours ] ::int[] AS arr 
    FROM summary s 
    WHERE s.hours != 2 
) 
SELECT ARRAY(SELECT * from intarr); 

使用array型我得到這個錯誤:

[Err] ERROR: could not find array type for data type integer[]

我找到一種方式改變

ARRAY [ s.days,s.hours ] ::int[] AS arr 

row to this

ARRAY [ s.days,s.hours ] ::varchar AS arr 

我得到如下結果:{"{1,3}","{2,3}"}。但我需要結果int[][]類型。如何將one-dimensional array轉換爲two-dimensional array

+0

我做到了,但我不知道是不是很好的解決方案? (SELECT ARRAY(從intarr中選擇arr):: VARCHAR),'''',''):: int [] []' – user527

回答

1

我現在使用它,我不認爲它是完美的方式。

WITH intarr AS (
    SELECT 
     ARRAY [ s.days,s.hours ] ::VARCHAR AS arr 
    FROM 
     summary s 
    WHERE 
     s.hours != 2 
) 
SELECT replace((SELECT ARRAY(SELECT arr from intarr)::VARCHAR), '"', '')::int[][]