STDifference (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt ein Objekt zurück, das die Punktmenge einer geometry -Instanz darstellt, die sich nicht innerhalb einer anderen geometry -Instanz befindet.

Syntax

  
.STDifference ( other_geometry )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

other_geometry
Eine andere geometry -Instanz, die angibt, welche Punkte aus der Instanz zu entfernen sind, in der STDifference() aufgerufen wird.

Rückgabetypen

SQL Server-Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Hinweise

Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geometry -Instanzen nicht übereinstimmen. Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten.

Beispiele

A. Berechnen des Unterschieds zwischen zwei Polygoninstanzen

Im folgenden Beispiel wird STDifference() zum Berechnen der Differenz zwischen zwei Polygonen verwendet.

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. Aufrufen von STDifference() in einer CurvePolygon-Instanz

Im folgenden Beispiel wird STDifference() in einer CurvePolygon-Instanz verwendet.

 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();

Weitere Informationen

OGC-Methoden für geometry-Instanzen