【问题标题】:How to extract only a fragment of composite type如何仅提取复合类型的片段
【发布时间】:2018-11-03 07:58:23
【问题描述】:

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

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

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

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

Ps:我已经读过像下面这样重新安排会起作用:

SELECT * FROM( myquery ) as alias; 

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

【问题讨论】:

    标签: sql postgresql postgis


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你能把这个查询包装成类似的东西

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

      附:以上是sql server 格式,可能无法直接翻译成postgres。

      【讨论】:

        猜你喜欢
        • 2019-07-01
        • 2015-03-21
        • 1970-01-01
        • 1970-01-01
        • 2015-12-07
        • 2021-01-31
        • 2022-07-19
        • 2012-04-08
        • 2015-01-20
        相关资源
        最近更新 更多