In (List) 演算子

IN (List) は、リストの中の値の少なくとも 1 つが見つかれば true を返す Boolean 空間演算子です。

例 1:

SELECT pop FROM table WHERE state IN ('nc', 'ny', 'ca')

データ ソース プロバイダが IN (List) をサポートしている場合、クエリ全体がデータ ソース プロバイダに委任されます。

データ ソース プロバイダが IN (List) をサポートしない場合は、クエリの一部だけが委任されます。

SELECT state, pop FROM table 

Spectrum Spatial は、データ プロバイダから返された結果を使って全体のクエリを実行します。

SELECT pop FROM <results from the delegation> WHERE state IN ('nc', 'ny', 'ca')

例 2:

SELECT pop FROM table WHERE LOWER(state) IN ('nc', 'ny', 'ca')

このクエリは、非集約クエリに含まれる関数 (この場合は LOWER()) と演算子はデータ プロバイダに委任できないという規則に抵触します。データ ソース プロバイダは、このクエリに対して未加工の結果を提供します。

SELECT state, pop FROM table 

Spectrum Spatial は、データ ソース プロバイダから返された結果を使って全体のクエリを実行します。

SELECT pop FROM <results from the delegation> WHERE LOWER(state) IN ('nc', 'ny', 'ca')

例 3:

SELECT pop FROM table WHERE state IN ('ny')

データ ソース プロバイダが、リストに 1 つの引数が含まれる IN をサポートしない場合、クエリは委任できません。この演算子は "=" 演算子に変換されます。「属性比較演算子」を参照してください。データ ソース プロバイダが '=' をサポートすれば、このクエリは委任されます。

SELECT pop FROM table WHERE state = 'ny'