STSymDifference (tipo de dados geometry)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzurePonto de extremidade de análises SQL no Microsoft FabricWarehouse no Microsoft Fabric
Retorna um objeto que representa todos os pontos que estão em uma instância de geometry ou em outra instância de geometry, mas não os pontos que estão em ambas as instâncias.
Sintaxe
.STSymDifference ( other_geometry )
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
Argumentos
other_geometry
É outra instância de geometry além da instância na qual STSymDifference()
está sendo invocado.
Tipos de retorno
Tipo de retorno do SQL Server: geometry
Tipo de retorno do CLR: SqlGeometry
Comentários
Esse método sempre retornará nulo se as SRIDs (IDs de referência espacial) das instâncias de geometry não forem correspondentes. O resultado poderá conter segmentos de arco circular apenas se as instâncias de entrada contiverem segmentos de arco circulares.
Exemplos
a. Computando a diferença simétrica de duas instâncias de Polígono
O exemplo a seguir usa STSymDifference()
para computar a diferença simétrica entre duas instâncias de Polygon
.
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. Computando a diferença simétrica entre um CurvePolygon e uma instância de Polygon
O exemplo a seguir retorna um GeometryCollection
que representa a diferença simétrica entre um CurvePolygon
e um 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() em instância de CurvePolygon com uma instância de Polygon inscrita
O exemplo a seguir retorna uma instância de CurvePolygon
com um anel Polygon
interior 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();
Consulte Também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de