

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Versioni SQL
<a name="iot-rule-sql-version"></a>

Il motore AWS IoT delle regole utilizza una sintassi simile a SQL per selezionare i dati dai messaggi MQTT. Le istruzioni SQL vengono interpretate in base a una versione di SQL specificata con la proprietà `awsIotSqlVersion` in un documento JSON che descrive la regola. Per ulteriori informazioni sulla struttura dei documenti di regole JSON, consulta la pagina relativa alla [creazione di una regola](iot-create-rule.md). La `awsIotSqlVersion` proprietà consente di specificare quale versione del motore di regole AWS IoT SQL si desidera utilizzare. Quando viene distribuita una nuova versione, puoi continuare a usare una versione precedente o modificare la regola per usare la nuova versione. Le regole correnti continuano a usare la versione con cui sono state create. 

L'esempio JSON seguente ti illustra come specificare la versione SQL usando la proprietà `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 attualmente supporta le seguenti versioni SQL:
+ `2016-03-23` - versione SQL creata il 23/03/2016 (consigliata).
+ `2015-10-08` – versione SQL originale creata il 08/10/2015.
+ `beta` – la più recente versione beta di SQL. Questa versione potrebbe comportare modifiche che interrompono il funzionamento delle regole.

## Novità della versione del motore di regole SQL 2016-03-23
<a name="sql-2016-03-23-beta"></a>
+ Correzioni per la selezione di oggetti JSON nidificati.
+ Correzioni per le query su matrici.
+ Supporto per query tra oggetti. Per ulteriori informazioni, consulta [Query di oggetti nidificati](iot-sql-nested-queries.md).
+ Supporto per l'output di una matrice come oggetto di primo livello.
+ Aggiunta della funzione `encode(value, encodingScheme)`, che può essere applicata ai dati in formato JSON e non JSON. Per ulteriori informazioni, consulta la [funzione di codifica](iot-sql-functions.md#iot-sql-encode-payload).

### Output di un oggetto `Array` come oggetto di primo livello
<a name="return-array-rule"></a>

Questa caratteristica permette a una regola di restituire una matrice come oggetto di primo livello. Ad esempio, partendo dal messaggio MQTT seguente:

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

E dalla regola seguente:

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

La regola genera l'output seguente.

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