ST_Split和循环问题PostGIS

时间:2015-03-26 21:11:18

标签: postgresql postgis

我是一个完整的PostGIS菜鸟,并且无法理解SQL语法的细节。我正在尝试获取大量的行数据并使用多边形进行剪辑。然后,我想创建一个新表,其中包含我用于剪辑的多边形中的线条。当我运行这个时,我收到' ERROR:语法错误,在ST_Split""我不确定我的语法有什么问题。我正在跳跃,有些人可以向我解释这行代码有什么问题。另外我希望有人可以解释循环和变量语法。来自python背景似乎非常复杂。

CREATE TABLE roads_clipped AS

ST_Split(
    (SELECT geom 
    FROM roads),
    (SELECT st_union 
    FROM iberian_peninsula)
);

CREATE TABLE roads_of_the_iberian_peninsula;

BEGIN
    FOR row IN 
        SELECT geom FROM roads_clipped
    LOOP
        IF ST_Contains(
                (SELECT st_union 
                FROM iberian_peninsula)
                ,row)
            THEN INSERT INTO roads_of_the_iberian_peninsula
                VALUES row;
        END IF;
    END LOOP;
END;    

由于

1 个答案:

答案 0 :(得分:0)

正确的语法应该是

CREATE TABLE your_table AS (SELECT ST_Split(...));

由于没有列定义,CREATE TABLE roads_of_the_iberian_peninsula;也没有意义。