STDifference (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 os conjuntos de pontos de uma instância de geometry que não estão dentro de outra instância de geometry.

Sintaxe

  
.STDifference ( 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 geography que indica quais pontos devem ser removidos da instância na qual STDifference() 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 entre duas instâncias de polígono

O exemplo a seguir usa STDifference() para computar a diferença entre dois polígonos.

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.STDifference(@h).ToString();  

B. Invocando STDifference() em uma instância de CurvePolygon

O exemplo seguinte usa STDifference () em uma instância de CurvePolygon.

 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))';  
 -- Note the different results returned by the two SELECT statements  
 SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

Consulte Também

Métodos OGC em instâncias geometry