属性比較演算子

属性比較演算子には、=、<、>、=<、=>、<> があります。

以下の例では = 演算子を使用しますが、どの属性演算子でも代用できます。

例 1:

SELECT * FROM table WHERE city='Austin'

データ ソース プロバイダが = 演算子をサポートする場合、文全体がデータ ソース プロバイダに委任されます。

データ ソース プロバイダが = 演算子をサポートしない場合、Spectrum Spatial は、WHERE 句を除いた SELECT 句の実行をデータ ソース プロバイダに依頼します。

SELECT * FROM table
Spectrum Spatial は、データ ソース プロバイダから返された SELECT 句の結果を使って全体のクエリを実行します。
SELECT * FROM <results from the delegation> WHERE city='Austin'
例 2:
SELECT pop FROM table WHERE city='Austin'

データ ソース プロバイダが = 演算子をサポートする場合、文全体がデータ ソース プロバイダに委任されます。

データ ソース プロバイダが = 演算子をサポートしない場合は、以下のようにクエリの一部がデータ ソース プロバイダに委任されます。

SELECT pop,city FROM table
以下は Spectrum Spatiall によって実行されます。
SELECT pop FROM <results from the delegation> WHERE city='Austin'

例 3:

SELECT pop FROM table WHERE UPPER(city)='Austin'
'UPPER' 関数は、たとえデータ ソース プロバイダが = 演算子をサポートしていても、Spectrum Spatial がクエリをデータ ソース プロバイダに委任するのを阻止します。これは、関数や演算子をデータ ソース プロバイダに委任できない SELECT 句の規則 5 に当てはまります。したがって、この例は Spectrum Spatial で完全に処理されます。データ ソース プロバイダに対しては、演算に使うデータのみが要求されます。
SELECT pop,city FROM table
以下は Spectrum Spatiall によって実行されます。
SELECT pop FROM <results from the delegation> WHERE UPPER(city)='Austin'

例 4:

SELECT state FROM table WHERE pop/area=5000
この例には '/' 演算子が含まれており、関数が含まれている場合に WHERE 句は委任できないことを意味します。したがって、この例は Spectrum Spatial で完全に処理されます。データ ソース プロバイダに対しては、演算に使うデータのみが要求されます。
SELECT state, pop, area FROM table
以下は Spectrum Spatiall によって実行されます。
SELECT pop FROM <results from the delegation> WHERE pop/area=5000