如何仅提取复合类型的片段

时间:2018-11-03 07:58:23

标签: sql postgresql postgis

我有以下SQL代码在PostgreSQL中执行PostGIS的一些空间操作。

SELECT 
ST_Dump(
    ST_SymDifference(a.geom, b.geom) 
)
FROM smp_areas a, smp_areas b

它以复合类型的格式返回给我,它由两部分组成:

output

如何仅获取第二部分(在这种情况下,该部分包含我需要的几何图形)?

Ps:我读过,可以像下面这样重新安排:

SELECT * FROM( myquery ) as alias; 

我尝试过,但返回了相同的结果。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

要访问几何,需要在ST_Dump()周围加上多余的括号并添加.geom。像这样:

SELECT 
(ST_Dump(
    ST_SymDifference(a.geom, b.geom) 
)).geom
FROM smp_areas a, smp_areas b

答案 1 :(得分:0)

您可以用类似的方式包装该查询

Select * from (my query) as alias where geometry_dump 
Like '{2}%'

P.s。以上是sql服务器格式,因此可能无法直接转换为postgres。