Contains 演算子
Contains は、ポリゴンなどのオブジェクトに、他方のジオメトリの全体が含まれているかどうかを評価する Boolean 空間演算子です。
例 1:
SELECT city FROM table WHERE obj Contains <geometry>
データ ソース プロバイダが Contains をサポートしている場合、クエリ全体がデータ ソース プロバイダに委任されます。
データ ソース プロバイダが Contains をサポートしない場合、クエリは EnvelopesIntersect に変換され、データ ソース プロバイダに委任されます。エンベロープが交差しなければ、それらのエンベロープは Contains 操作を満たしません。結果として「偽」を返します。
SELECT city, obj FROM table WHERE obj EnvelopesIntersect <geometry>
Spectrum Spatial は、データ ソース プロバイダから返された結果を使って Contains を評価します。
SELECT city FROM <results of the delegation> WHERE obj Contains <geometry>
例 2:
SELECT city FROM table WHERE <geometry> Contains obj
この例は、最初の例とは反対です。これは、オペランドを入れ替えて Within 演算子を逆にしたものでもあります。見てのとおり、このクエリは WHERE 句の規則を満たしません。Boolean 演算子は WHERE <column> operator
<geometry>
という形式でなければなりません。このクエリは Within 操作に書き換えられ、Within の規則に従って委任されます。
SELECT city FROM table WHERE obj Within <geometry>