Как извлечь только фрагмент составного типа - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть следующий код SQL, который выполняет некоторые пространственные операции PostGIS в PostgreSQL.

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 голосов
/ 03 ноября 2018

Чтобы получить доступ к геометрии, вам нужно поставить дополнительные скобки вокруг ST_Dump () и добавить .geom. Как это:

SELECT 
(ST_Dump(
    ST_SymDifference(a.geom, b.geom) 
)).geom
FROM smp_areas a, smp_areas b
0 голосов
/ 03 ноября 2018

Не могли бы вы обернуть этот запрос в что-то вроде

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

P.s. Выше приведен формат сервера sql, поэтому он не может напрямую переводиться в postgres.

...