- Kategorien:
ST_DIFFERENCE¶
Gibt bei zwei GEOGRAPHY-Eingabeobjekten ein GEOGRAPHY-Objekt zurück, das die Punkte im ersten Objekt darstellt, die im zweiten Objekt nicht enthalten sind (d. h. die Differenz zwischen den beiden Objekten).
- Siehe auch:
Syntax¶
ST_DIFFERENCE( <geography_expression_1> , <geography_expression_2> )
Argumente¶
geography_expression_1
Ein GEOGRAPHY-Objekt.
geography_expression_2
Ein GEOGRAPHY-Objekt.
Rückgabewerte¶
Die Funktion gibt einen Wert vom Typ GEOGRAPHY zurück.
Wenn alle Punkte von geography_expression_1
in geography_expression_2
enthalten sind (d. h. die Differenz ist eine leere Punktmenge), gibt die Funktion NULL zurück.
Nutzungshinweise¶
Befindet sich ein beliebiger Punkt eines Eingabeobjekts auf der Grenze des anderen Eingabeobjekts (ohne Punkte), ist die Ausgabe möglicherweise nicht korrekt.
Es wird nicht garantiert, dass die Funktion normalisierte und/oder minimale Ergebnisse liefert. Eine Ausgabe könnte zum Beispiel aus einem LineString-Objekt bestehen, das mehrere Punkte enthält, die eigentlich nur ein gerades Segment bilden.
Beispiele¶
Im folgende Beispiel wird ein GEOGRAPHY-Objekt zurückgegeben, das die Differenz zwischen zwei GEOGRAPHY-Eingabeobjekten darstellt:
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT'; SELECT ST_DIFFERENCE( TO_GEOGRAPHY('POLYGON((0 0, 1 0, 2 1, 1 2, 2 3, 1 4, 0 4, 0 0))'), TO_GEOGRAPHY('POLYGON((3 0, 3 4, 2 4, 1 3, 2 2, 1 1, 2 0, 3 0))')) AS difference_between_objects;
Dieses Beispiel ergibt die folgende Ausgabe:
+-------------------------------------------------------------------------------------------------------------+ | DIFFERENCE_BETWEEN_OBJECTS | |-------------------------------------------------------------------------------------------------------------| | POLYGON((1 1,1.5 1.500171359,1 2,1.5 2.500285599,1 3,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,1 1)) | +-------------------------------------------------------------------------------------------------------------+
Die folgenden Bilder veranschaulichen die Unterschiede in den Flächen, die die Eingabe- und Ausgabeobjekte darstellen:
Eingabe |
Ausgabe |
---|---|