Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank 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 )
Arguments
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
Remarks
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.
Examples
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();