

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á.

# Versões do SQL
<a name="iot-rule-sql-version"></a>

O mecanismo de AWS IoT regras usa uma SQL-like sintaxe para selecionar dados das mensagens MQTT. As instruções SQL são interpretadas com base em uma versão do SQL especificada com a propriedade `awsIotSqlVersion` em um documento JSON que descreve a regra. Para obter mais informações sobre a estrutura de documentos de regra JSON, consulte [Como criar uma regra](iot-create-rule.md). A `awsIotSqlVersion` propriedade permite especificar qual versão do mecanismo de regras AWS IoT SQL você deseja usar. Quando uma nova versão é implantada, você pode continuar usando uma versão mais antiga ou alterar a regra para usar a nova versão. As regras atuais continuam a usar a versão com a qual foram criadas. 

O seguinte exemplo de JSON mostra como especificar a versão do SQL usando a propriedade `awsIotSqlVersion`.

```
{
    "sql": "expression",
    "ruleDisabled": false,
    "awsIotSqlVersion": "2016-03-23",
    "actions": [{
        "republish": {
            "topic": "my-mqtt-topic",
            "roleArn": "arn:aws:iam::123456789012:role/my-iot-role"
        }
    }]
}
```

AWS IoT atualmente oferece suporte às seguintes versões do SQL:
+ `2016-03-23` – A versão SQL implantada em 23/03/2016 (recomendada).
+ `2015-10-08` – A versão original do SQL implantada em 08/10/2015.
+ `beta` – A versão beta mais recente do SQL. Essa versão pode causar alterações nas regras.

## Novidades da versão 23/03/2016 do mecanismo de regras SQL
<a name="sql-2016-03-23-beta"></a>
+ Correções na seleção de objetos JSON aninhados.
+ Correções em consultas de matrizes.
+ Intra-object suporte a consultas. Para obter mais informações, consulte [Consultas de objeto aninhado](iot-sql-nested-queries.md).
+ Suporte para emitir uma matriz como um objeto de nível superior.
+ Adição da função `encode(value, encodingScheme)`, que pode ser aplicada em dados em formato JSON e não JSON. Para obter mais informações, consulte a [função de codificação](iot-sql-functions.md#iot-sql-encode-payload).

### Produzir uma `matriz` como um objeto de nível superior
<a name="return-array-rule"></a>

Esse recurso permite que uma regra gere uma matriz como um objeto de nível superior. Por exemplo, com base na seguinte mensagem MQTT:

```
{
    "a": {"b":"c"},
    "arr":[1,2,3,4]
}
```

E a seguinte regra:

```
SELECT VALUE arr FROM 'topic'
```

A regra gera a seguinte saída:

```
[1,2,3,4]
```