错误:在SQL表达式结束时缺少“LOOP”

时间:2013-12-02 05:35:30

标签: postgresql while-loop

我的代码中出现上述错误,表示' 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;

1 个答案:

答案 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 ;