arrays - PostgreSQL:将动态 ARRAY 插入函数

标签 arrays postgresql postgis dijkstra

我正在尝试将一系列值作为数组插入到可以定义数组的函数中。数组值来自另一个 SQL 函数,它给出了我想在后续函数中使用的值的表,它是 pgr_dijkstra ONE 到 MANY 选项,它需要一个数组。

函数的正常工作方式:

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

最佳答案

select * 
from pgr_dijkstra(
    'select id,source,target,cost from my_table',
    start_id,
    array(select distinct id::integer from (bla bla))
);

关于arrays - PostgreSQL:将动态 ARRAY 插入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42858869/

相关文章:

algorithm - 不定长数组

sql - 找到一公里内最大的点簇

PHP - 用数字对文件名数组进行排序?

javascript - 在字符串数组中连接多个数组

postgresql - 如何应用 'advanced' 基于查询的约束?

android应用离线模式,本地sqlite数据库同步远程数据库

postgresql - postgres 从 10.9 升级到 11.4 失败 (aws rds)

sql - 更新字段几何多边形 PostGIS PostgreSQL

javascript - TypeError : t. map 不是函数

postgresql - 在psql中,为什么有些命令没有效果?