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 o conjunto de pontos de uma ocorrência de geometria que não está dentro de outra ocorrência de geometria .
Syntax
.STDifference ( other_geometry )
Arguments
other_geometry
É outra ocorrência de geometria que indica quais pontos devem ser removidos da instância na qual STDifference() 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 entre duas instâncias do Polygon
O exemplo a seguir usa STDifference() para calcular 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 do CurvePolygon
O exemplo a seguir 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();