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