Tsql 如何从多边形表创建多多边形

Tsql 如何从多边形表创建多多边形,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,我有一个多边形表“PARCELA”和几何列“geometry”。如何从这些多边形创建多多边形 谢谢 不确定这是否是您想要的,但是: 如果你有多边形A和多边形B,你想把它们合并成一个多边形,这就是我用的。 我需要的是把北欧国家聚集在一起,这样我就可以把它们作为一个整体打印在地图上 我有表格国家,几何列“geom”和列“ISO3”位于国家代码所在的位置。所以我使用ISO3列作为主键 DECLARE @gtbl TABLE(g geometry, id INT) INSERT INTO @gtbl

我有一个多边形表“PARCELA”和几何列“geometry”。如何从这些多边形创建多多边形


谢谢

不确定这是否是您想要的,但是: 如果你有多边形A和多边形B,你想把它们合并成一个多边形,这就是我用的。 我需要的是把北欧国家聚集在一起,这样我就可以把它们作为一个整体打印在地图上

我有表格国家,几何列“geom”和列“ISO3”位于国家代码所在的位置。所以我使用ISO3列作为主键

DECLARE @gtbl TABLE(g geometry, id INT)
INSERT INTO @gtbl 
SELECT null,1

DECLARE @t TABLE(PK INT Identity(1,1), ISO3 VARCHAR(3))

INSERT INTO @t
Select ISO3 From countries WHERE ISO3 in ('FIN','SWE','NOR','DNK')

Declare @maxPK int; Select @maxPK = MAX(PK) From @t
Declare @pk int; Set @pk = 1

While @pk <= @maxPK

Begin

    IF ((SELECT g FROM @gtbl) IS NULL)
        BEGIN
            UPDATE gtbl SET g = c.Geom.MakeValid()
            FROM @gtbl gtbl, countries c WHERE  c.ISO3 in (Select ISO3 From @T Where PK = @pk)
        END
    ELSE
        BEGIN
            UPDATE gtbl SET g = g.STUnion(c.Geom.MakeValid())
            FROM @gtbl gtbl, countries c
            WHERE  c.ISO3 in (Select ISO3 From @T Where PK = @pk)
        END

    Select @pk = @pk + 1
End


SELECT * FROM @gtbl
DECLARE@gtbl表(g几何体,id INT)
插入@gtbl
选择null,1
声明@t表(PK INT标识(1,1),ISO3 VARCHAR(3))
插入@t
从ISO3所在的国家/地区(“FIN”、“SWE”、“NOR”、“DNK”)中选择ISO3
声明@maxPK int;从@t中选择@maxPK=MAX(PK)
声明@pk int;设置@pk=1

虽然@pk不确定这是否是您想要的,但是: 如果你有多边形A和多边形B,你想把它们合并成一个多边形,这就是我用的。 我需要的是把北欧国家聚集在一起,这样我就可以把它们作为一个整体打印在地图上

我有表格国家,几何列“geom”和列“ISO3”位于国家代码所在的位置。所以我使用ISO3列作为主键

DECLARE @gtbl TABLE(g geometry, id INT)
INSERT INTO @gtbl 
SELECT null,1

DECLARE @t TABLE(PK INT Identity(1,1), ISO3 VARCHAR(3))

INSERT INTO @t
Select ISO3 From countries WHERE ISO3 in ('FIN','SWE','NOR','DNK')

Declare @maxPK int; Select @maxPK = MAX(PK) From @t
Declare @pk int; Set @pk = 1

While @pk <= @maxPK

Begin

    IF ((SELECT g FROM @gtbl) IS NULL)
        BEGIN
            UPDATE gtbl SET g = c.Geom.MakeValid()
            FROM @gtbl gtbl, countries c WHERE  c.ISO3 in (Select ISO3 From @T Where PK = @pk)
        END
    ELSE
        BEGIN
            UPDATE gtbl SET g = g.STUnion(c.Geom.MakeValid())
            FROM @gtbl gtbl, countries c
            WHERE  c.ISO3 in (Select ISO3 From @T Where PK = @pk)
        END

    Select @pk = @pk + 1
End


SELECT * FROM @gtbl
DECLARE@gtbl表(g几何体,id INT)
插入@gtbl
选择null,1
声明@t表(PK INT标识(1,1),ISO3 VARCHAR(3))
插入@t
从ISO3所在的国家/地区(“FIN”、“SWE”、“NOR”、“DNK”)中选择ISO3
声明@maxPK int;从@t中选择@maxPK=MAX(PK)
声明@pk int;设置@pk=1

虽然@pk可以发布一些样本数据和所需的o/p吗?我有一个带有GEOMETRY列的表,名为“GEOMETRY”,它可以是任何带有多边形的表。我只需要从表中的多边形创建多多边形。您可以发布一些示例数据和所需的o/p吗?我有一个名为“GEOMETRY”的带有gemetry列的表,它可以是任何带有多边形的表。我只需要从表中的多边形创建多多边形。