STDifference (tipo de datos geometry)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve un objeto que representa el punto establecido desde una instancia de geometry que no queda dentro de otra instancia de geometry.

Sintaxis

  
.STDifference ( other_geometry )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

other_geometry
Es otra instancia de geometry que indica los puntos que hay que quitar de la instancia en la que se invoca STDifference().

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Observaciones

Este método siempre devuelve NULL si no coinciden los identificadores de referencia espacial (SRID) de las instancias de geometry. El resultado puede contener segmentos de arco circulares solo si las instancias de entrada contienen segmentos de arco circulares.

Ejemplos

A. Calcular la diferencia entre dos instancias de Polygon

En el ejemplo siguiente se utiliza STDifference() para calcular la diferencia entre dos 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. Invocar STDifference() en una instancia de CurvePolygon

En el siguiente ejemplo se utiliza STDifference() en una instancia 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 también

Métodos de OGC en instancias de geometry