我想將一系列值作爲數組插入到可以定義數組的函數中。數組值來自另一個SQL函數,該函數提供了一個我想在前進函數中使用的值的表格,這是pgr_dijkstra ONE to MANY選項,它需要一個數組。PostgreSQL:將動態ARRAY插入函數
功能如何正常工作:
SELECT *
FROM pgr_dijkstra('SELECT id,source,target,cost FROM my_table', start_id, ARRAY(1,2,3,4));
如何粗略想如果我就是要嘗試並插入這個數組到它的功能應該工作,但不和
SELECT foo.*
FROM (SELECT ARRAY(SELECT DISTINCT id::integer
FROM (bla bla) AS ARRAY_QUERY,
pgr_dijkstra('SELECT id, source,target,cost FROM my_table', start_id, ARRAY_QUERY) AS foo;
由於這隻給出:
ERROR: function pgr_dijkstra(unknown, integer, record, boolean) does not exist
而該數組被創建爲一個整數,而不是一個記錄,所以不知道爲什麼這個正在發生。
可能是因爲我沒有完全理解數組如何在postgresql中工作,即使在閱讀了關於主題的文檔之後,以及如何從一個查詢實現值到另一個需要作爲數組輸入的值。希望有一個解決方法,或者只是我錯過了正確實施這一步。
解決:https://stackoverflow.com/a/42859060/7056396
的可能的複製[在陣列中連接多個行上的PostgreSQL SQL](http://stackoverflow.com/questions/533256/concatenate-multiple-rows-in-an -array-with-sql-on-postgresql) –
而不是使用子查詢更好,如果你創建一個cte,我幾乎可以肯定sintaxis不是你需要的。 –
我不熟悉'cte'和'sintaxis'的術語。但是http://stackoverflow.com/a/42859060/7056396提到的以前的解決方案的工作原理也是我的意圖。 – leffe86