STDifference (geography-Datentyp)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz
Gibt ein Objekt zurück, das die Punktmenge einer geography -Instanz darstellt, die sich außerhalb einer anderen geography -Instanz befindet.
Syntax
.STDifference ( other_geography )
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_geography
Eine andere geography-Instanz, die angibt, welche Punkte aus der Instanz zu entfernen sind, in der STDifference() aufgerufen wird.
Rückgabetypen
SQL Server-Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Ausnahmen
Diese Methode löst eine ArgumentException aus, wenn die Instanz eine gegenüberliegende Kante enthält.
Bemerkungen
Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geography -Instanzen nicht übereinstimmen.
In SQL Server wurden die Ergebnisse, die auf dem Server zurückgegeben werden können, um FullGlobe-Instanzen erweitert. SQL Server unterstützt räumliche Instanzen, die größer als eine Hemisphäre sind. Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten. Diese Methode ist nicht exakt.
Beispiele
A. Berechnen des Unterschiedes zwischen zwei geography-Instanzen
Im folgenden Beispiel wird STDifference()
zum Berechnen der Differenz zwischen zwei geography -Instanzen erweitert.
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('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();
B. Verwenden eines FullGlobe mit STDifference()
Im folgenden Beispiel wird eine Instanz von FullGlobe
verwendet. Das erste Ergebnis ist eine leere GeometryCollection
, und das zweite Ergebnis ist eine Polygon
-Instanz. STDifference()
gibt eine leere GeometryCollection
zurück, wenn der Parameter eine FullGlobe
-Instanz ist. Alle Punkte in einer aufrufenden Instanz von geography
sind in einer Instanz von FullGlobe
enthalten.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
DECLARE @h geography = 'FULLGLOBE';
SELECT @g.STDifference(@h).ToString(),
@h.STDifference(@g).ToString();
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für