合并:ST_Union
文档上是这样说的:
经过亲身实践,比较两个geom是很好用的,可是多个的时候,看网上说使用数组的形式 [geom1,geom2,geom3] ,可是并没有成功。。。于是只能反复合并两个,实现了合并多个。
代码:
合并两个
SELECT
ST_Union ( ( SELECT geom FROM department_info WHERE node_name = '陕西一队' ), ( SELECT geom FROM department_info WHERE node_name = '陕西二队' ) )
合并多个
SELECT
ST_Union (
( SELECT ST_Union ( ( SELECT geom FROM department_info WHERE node_name = '陕西一队' ), ( SELECT geom FROM department_info WHERE node_name = '陕西二队' ) ) ),
( SELECT geom FROM department_info WHERE node_name = '陕西三队' )
)
SELECT
ST_Union (
(
SELECT
ST_Union (
(
SELECT
ST_Union (
(
SELECT
ST_Union (
(
SELECT
ST_Union (
( SELECT ST_Union ( ( SELECT geom FROM department_info WHERE id = '中石油西部管道乌鲁木齐输油气分公司' ), ( SELECT geom FROM department_info WHERE id = '中石油西部管道酒泉输油气分公司' ) ) ),
( SELECT geom FROM department_info WHERE id = '中石油西部管道甘肃输油气分公司' )
)
),
( SELECT geom FROM department_info WHERE id = '中石油西部管道塔里木输油气分公司' )
)
),
( SELECT geom FROM department_info WHERE id = '中石油西部管道兰州输气分公司' )
)
),
( SELECT geom FROM department_info WHERE id = '中石油西部管道新疆输油气分公司' )
)
),
( SELECT geom FROM department_info WHERE id = '中石油西部管道独山子输油气分公司' )
)
比较是否相同:ST_Equals
代码:
SELECT
ST_Equals (
(
SELECT
ST_Union (
( SELECT ST_Union ( ( SELECT geom FROM department_info WHERE node_name = '陕西一队' ), ( SELECT geom FROM department_info WHERE node_name = '陕西二队' ) ) ),
( SELECT geom FROM department_info WHERE node_name = '陕西三队' )
)
),
( SELECT geom FROM department_info WHERE node_name = '陕西管理处' )
)
结果:
SELECT
ST_Equals ( ( SELECT geom FROM department_info WHERE node_name = '陕西一队' ), ( SELECT geom FROM department_info WHERE node_name = '陕西一队' ) )