sql - 如何只提取复合类型的片段

标签 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; 

我试过了,但返回了相同的结果。 谁能帮忙?

最佳答案

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

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

关于sql - 如何只提取复合类型的片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53129513/

相关文章:

postgresql - 从值可以为空的表中选择

postgresql - 修改postgresql中的UNIQUE

java - 2019年客户端-服务器之间的高效数据库同步

sql - 按结果出现的半径数对 ST_DWithin 结果进行排序

PostgreSQL 错误 : could not open segment 1 of relation base/20983/2416

mysql - 获得具有流派和类型转换的电影输出

sql - Xamarin - SQLite.SQLiteException : Constraint using SQLite-net-pcl

mysql - 用于提取仅链接到已关闭缺陷的测试用例的 QC 查询

postgresql - pg_dump 不写 "CREATE EXTENSION postgis;"

sql - 如何在单个选择查询中获取平均值、中位数、模式和范围?