Подтвердить что ты не робот

Объединить всю геометрию в таблице SQL Server, например, GeomUnion в Postgres

Просто для уточнения переднего плана: я говорю об объединении геометрии, а не ключевое слово SQL UNION.

Я пытаюсь перенести некоторые пространственные данные из Postgres с PostGIS на SQL Server 2008. Это было нормально, пока я не увидел такое выражение:

SELECT GeomUnion(the_geom) FROM some_table

Это объединяет всю геометрию в этом столбце и возвращает его как один результат (аналогично тому, как работает COUNT). Насколько я знаю, SQL Server имеет только функцию STUnion, которая объединяет одну геометрию с другой. Есть ли способ сделать что-то похожее на способ Postgres?

Если это помогает, функция STUnion работает следующим образом:

SELECT first_geometry_column.STUnion(second_geometry_column) FROM some_table
4b9b3361

Ответ 1

То, как я закончил это, - это переменные:

DECLARE @Shape GEOMETRY
SET @Shape = GEOMETRY::STGeomFromText('GEOMETRYCOLLECTION EMPTY', @MySrid)

SELECT @Shape = @Shape.STUnion(Shape)
  FROM MyShapeTable

Это не так хорошо, но он работает.