PostgreSQL 中 POLYGON 到 MULTIPOLYGON 的转换

有时候合并几个多边形后的结果并不是 MULTIPOLYGON 而是 POLYGON,这样的结果保存到 MULTIPOLYGON 类型的字段中会出错,又没有查到合适的函数或方法,来做转换,只好自己用笨办法来做转换了,先把 POLYGON 类型的字段 转为 Text,然后替换 'POLYGON' 为 'MULTIPOLYGON(', 然后再在Text尾部加上')'。

记录相应的SQL在这里,备查,也希望知道正确答案的朋友能告诉我更好的方法,先谢了。

UPDATE place_district SET border = GeomFromText(a.border_text, 4326)
FROM (
SELECT address_code, 
    Overlay(AsText(St_memunion(border)) placing 
'MULTIPOLYGON(' from 1 for 7|| ')' as border_text 
FROM place_city_zone 
WHERE address_code 
= '513437' 
GROUP BY address_code
) a
WHERE place_district.address_code 
= a.address_code
原文地址:https://www.cnblogs.com/kylindai/p/POLYGON_2_MULTIPOLYGON.html