我的PostgreSQL语法(%)符号错误

时间:2018-07-17 06:39:09

标签: postgresql postgis geoserver

您好,我会按照本教程http://workshops.boundlessgeo.com/tutorial-routing/的操作,其中我现在需要在其中创建最短路径的sql视图。 但是我已经进入了postgresql几个月了。 但我似乎无法理解下面所附代码段中Percent(%)符号的用途。 香港专业教育学院四处寻找它,但香港专业教育学院只看到谈论这个::,而不是%的迹象。 无论如何,这是片段。因为我似乎无法使其运行。

SELECT

  min(r.seq) AS seq,
  e.old_id AS id,
  e.name,
  e.type,
  e.oneway,
  sum(e.time) AS time,
  sum(e.distance) AS distance,
  ST_Collect(e.the_geom) AS geom
FROM
  pgr_dijkstra(
   'SELECT
    id,
    source::INT4,
    target::INT4,
    %cost% AS cost,
    CASE oneway
      WHEN ''yes'' THEN -1
      ELSE %cost%
    END AS reverse_cost
  FROM edges_noded', %source%, %target%, true) AS r,
  edges_noded AS e
WHERE
  r.id2 = e.id
GROUP BY
  e.old_id, e.name, e.type, e.oneway

它是一个PostgreSQL代码。

1 个答案:

答案 0 :(得分:3)

这些是GeoServer在创建视图期间使用的占位符。它们将由您在上述应用程序中输入的任何内容替换。

如果您不使用GeoServer,则可以尝试使用他的带有硬编码值的早期示例:

%cost% -> time
%source% -> 753
%target% -> 756

或更高版本:

%cost% -> time
%source% -> 100
%target% -> 1000

不相关,但是通过逗号分隔FROM子句中的表,然后在WHERE中列出条件来进行JOIN是过时的,不建议这样做。