有时候合并几个多边形后的结果并不是 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
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