STSymDifference (geography-Datentyp)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL-Datenbank in Microsoft Fabric
Gibt ein Objekt zurück, das alle Punkte darstellt, die sich entweder in einer geography -Instanz oder in einer anderen geography -Instanz befinden, nicht jedoch die Punkte, die sich innerhalb beider Instanzen befinden.
Syntax
.STSymDifference ( other_geography )
Argumente
other_geography
Eine andere geography-Instanz zusätzlich zu der Instanz, in der STSymDistance() aufgerufen wird.
Rückgabetypen
SQL Server-Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Bemerkungen
Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geography -Instanzen nicht übereinstimmen.
SQL Server unterstützt räumliche Instanzen, die größer als eine Hemisphäre sind. In SQL Server wurden die Ergebnisse, die auf dem Server zurückgegeben werden können, um FullGlobe-Instanzen erweitert.
Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten.
Beispiele
A. Berechnen des symmetrischen Unterschieds zweier Polygone
Im folgenden Beispiel wird STSymDifference()
zum Berechnen der symmetrischen Differenz zweier Polygon
-Instanzen verwendet.
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);
SELECT @g.STSymDifference(@h).ToString();
B. Berechnen des symmetrischen Unterschieds mit FullGlobe
Im folgenden Beispiel wird der symmetrische Unterschied eines Polygon
und eines FullGlobe
verglichen.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STSymDifference('FULLGLOBE').ToString();