Operador In (List)

IN (List) es un operador espacial booleano que arroja un valor verdadero si se encuentra al menos uno de los valores en la lista.

Ejemplo 1:

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

Si el proveedor de fuente de datos admite IN (List), toda la consulta se delega al proveedor de fuente de datos.

Si el proveedor de fuente de datos no admite IN (List), solo se delega parte de la consulta:

SELECT state, pop FROM table 

Spectrum Spatial ejecuta toda la consulta, usando los resultados del proveedor de datos:

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

Ejemplo 2:

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

Esta consulta infringe la regla que establece que las funciones, en este caso LOWER(), y los operadores en una consulta de no agregación no pueden delegarse al proveedor de datos. El proveedor de fuente de datos, entonces, le proporcionará los resultados originales de esta consulta:

SELECT state, pop FROM table 

Spectrum Spatial ejecuta toda la consulta, usando los resultados del proveedor de fuente de datos:

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

Ejemplo 3:

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

Si el proveedor de fuente de datos no admite IN con un solo argumento en la lista, no se puede delegar. Se convierte en un operador ‘=’: Consulte Operadores para comparación de atributos. El proveedor de fuente de datos debe admitir '=' para que la consulta se delegue.

SELECT pop FROM table WHERE state = 'ny'