

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cláusula WHERE
<a name="iot-sql-where"></a>

La cláusula WHERE determina si se llevan a cabo las acciones especificadas por una regla. Si la cláusula WHERE se evalúa en true, se llevan a cabo las acciones de la regla. De lo contrario, las acciones de la regla no se llevan a cabo. 

La cláusula WHERE admite [Tipos de datos](iot-sql-data-types.md) [Operadores](iot-sql-operators.md)[Funciones](iot-sql-functions.md),,[Literales](iot-sql-literals.md),[Instrucciones case](iot-sql-case.md),[Extensiones JSON](iot-sql-json.md), [Variables](iot-sql-set.md#iot-sql-set-usage) y[Consultas de objetos anidados](iot-sql-nested-queries.md).

**Ejemplo:**

Carga de entrada publicada en `topic/subtopic`: `{"color":"red", "temperature":40}`.

SQL: `SELECT color AS my_color FROM 'topic/subtopic' WHERE temperature > 50 AND color <> 'red'`.

En este caso, la regla se activará, pero las acciones especificadas por la regla no se llevarán a cabo. No habrá carga de salida.

Puede utilizar funciones y operadores en la cláusula WHERE. Sin embargo, no puede hacer referencia a ningún alias creado con la palabra clave AS en la cláusula SELECT. La cláusula WHERE se evalúa en primer lugar para determinar si SELECT debe evaluarse. 

**Ejemplo con una carga que no es JSON:**

Carga útil entrante que no es de JSON publicada el ``: topic/subtopic `80`

SQL: ``SELECT decode(encode(*, 'base64'), 'base64') AS value FROM 'topic/subtopic' WHERE decode(encode(*, 'base64'), 'base64') > 50`

En este caso, la regla se activará y las acciones especificadas por la regla se llevarán a cabo. La cláusula SELECT transformará la carga saliente en una carga `{"value":80}` JSON.