

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

A cláusula WHERE determina se as ações especificadas por uma regra são executadas. Se a cláusula WHERE for avaliada como verdadeira, as ações da regra serão executadas. Caso contrário, as ações da regra não serão executadas. 

A cláusula WHERE suporta [Tipos de dados](iot-sql-data-types.md)[Operadores](iot-sql-operators.md),[Funções](iot-sql-functions.md),[Literais](iot-sql-literals.md),[Declarações de caso](iot-sql-case.md),[Extensões JSON](iot-sql-json.md),, [Variáveis](iot-sql-set.md#iot-sql-set-usage) e. [Consultas de objeto aninhado](iot-sql-nested-queries.md)

**Exemplo:**

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

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

Nesse caso, a regra será acionada, mas as ações especificadas pela regra não serão executadas. Não haverá carga útil de saída.

Você pode usar funções e operadores na cláusula WHERE. No entanto, você não pode fazer referência a aliases criados com a palavra-chave AS no SELECT. A cláusula WHERE é avaliada primeiro para determinar se SELECT será avaliada. 

**Exemplo com carga útil não JSON:**

Carga útil não JSON de entrada publicada em `tópico/subtópico`: `80`

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

Nesse caso, a regra será acionada e as ações especificadas pela regra serão executadas. A carga útil de saída será transformada pela cláusula SELECT como uma carga JSON `{"value":80}`.