Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Retorna um objeto que representa todos os pontos que estão em uma instância de geometria ou em outra ocorrência de geometria , mas não os pontos que estão em ambas as instâncias.
Syntax
.STSymDifference ( other_geometry )
Arguments
other_geometry
É outra instância de geometria além da instância na qual STSymDifference() está sendo invocada.
Tipos de devolução
Tipo de retorno do SQL Server: geometria
Tipo de retorno CLR: SqlGeometry
Remarks
Esse método sempre retorna null se as IDs de referência espacial (SRIDs) das instâncias de geometria não corresponderem. O resultado pode conter segmentos de arco circular somente se as instâncias de entrada contiverem segmentos de arco circular.
Examples
A. Calculando a diferença simétrica de duas instâncias do Polígono
O exemplo a seguir usa STSymDifference() para calcular a diferença simétrica de duas Polygon instâncias.
DECLARE @g geometry;
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @g.STSymDifference(@h).ToString();
B. Calculando a diferença simétrica entre uma ocorrência de CurvePolygon e Polygon
O exemplo a seguir retorna a GeometryCollection que representa a diferença simétrica entre a CurvePolygon e a Polygon.
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();
C. Usando STSymDifference() na instância de CurvePolygon com uma ocorrência de Polygon inscrita
O exemplo a seguir retorna uma CurvePolygon ocorrência com um anel interior Polygon que representa a diferença simétrica entre as duas instâncias comparadas.
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 2 -1, 2 1, 1 1, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();