Operator „Contains“

Contains ist ein Boolescher räumlicher Operator, der auswertet, ob ein Objekt, z. B. ein Polygon, eine Geometrie vollständig enthält.

Beispiel 1:

SELECT city FROM table WHERE obj Contains <geometry>

Wenn der Datenquellenanbieter „Contains“ unterstützt, wird die gesamte Abfrage an den Datenquellenanbieter delegiert.

Wenn der Datenquellenanbieter „Contains“ nicht unterstützt, wird die Abfrage in EnvelopesIntersect umgewandelt und an den Datenquellenanbieter delegiert. Wenn sich die Umgrenzungen nicht überschneiden, können sie einen „Contains“-Vorgang nicht umsetzen, und als Ergebnis wird „falsch“ zurückgegeben.

SELECT city, obj FROM table WHERE obj EnvelopesIntersect <geometry>

Spectrum Spatial wertet „Contains“ mithilfe der Ergebnisse des Datenquellenanbieters aus.

SELECT city FROM <results of the delegation> WHERE obj Contains <geometry>
Beispiel 2:
SELECT city FROM table WHERE <geometry> Contains obj

Dieses Beispiel ist das Gegenteil zum ersten Beispiel. Es ist zudem entgegengesetzt zum Operator Within und weist umgekehrte Operanden auf. Im derzeitigen Format entspricht diese Abfrage nicht den Regeln der WHERE-Klausel, bei der boolesche Operatoren die Form WHERE <column> operator <geometry> aufweisen müssen. Die Abfrage wird in einen „Within“-Vorgang umformatiert und entsprechend den Regeln für den Operator „Within“ delegiert.

SELECT city FROM table WHERE obj Within <geometry>