我的代码中出现上述错误,表示' while'线。 我试图在一些gis数据上找到一条线的交点数。 我已经逐字复制了代码,postgis代码不应该影响问题。 (如果我试图以一种非常愚蠢的方式做到这一点,请说。我只是一个初学者)
create or replace function border() returns table(x real, sum bigint) as $$
declare x real;
begin
x := -35.5724;
while x > -36.4 do
return query select x,sum(st_npoints(st_intersection(the_geom,st_setsrid(st_makeline(st_point(173.3,x),st_point(175,x)),4167)))) from auckland_numberlines;
x := x - 0.1;
end while
end
$$ language plpgsql;
答案 0 :(得分:1)
while x > -36.4 do
return query select x,sum(st_npoints(st_intersection(the_geom,st_setsrid(st_makeline(st_point(173.3,x),st_point(175,x)),4167)))) from auckland_numberlines;
x := x - 0.1;
end while
应该是
WHILE x > -36.4 LOOP
return query select x,sum(st_npoints(st_intersection(the_geom,st_setsrid(st_makeline(st_point(173.3,x),st_point(175,x)),4167)))) from auckland_numberlines;
x := x - 0.1;
END LOOP ;