

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

# Clausola SELECT
<a name="iot-sql-select"></a>

La clausola AWS IoT SELECT è essenzialmente la stessa della clausola ANSI SQL SELECT, con alcune differenze minori.

La clausola SELECT supporta[Tipi di dati](iot-sql-data-types.md),,[Operatori](iot-sql-operators.md),[Funzioni](iot-sql-functions.md), [Valori letterali](iot-sql-literals.md) [Istruzioni case](iot-sql-case.md)[Estensioni JSON](iot-sql-json.md), [Variables](iot-sql-set.md#iot-sql-set-usage) e. [Query di oggetti nidificati](iot-sql-nested-queries.md) [Payload binari](binary-payloads.md)

È possibile usare la clausola SELECT per estrarre informazioni dai messaggi MQTT in ingresso. È inoltre possibile utilizzare `SELECT *` per recuperare l'intero payload del messaggio in arrivo. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic': {"color":"red", "temperature":50}
SQL statement: SELECT * FROM 'topic/subtopic'
Outgoing payload: {"color":"red", "temperature":50}
```

Se il payload è un oggetto JSON, è possibile fare riferimento alle chiavi nell'oggetto. Il payload in uscita contiene la coppia chiave-valore. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic': {"color":"red", "temperature":50}
SQL statement: SELECT color FROM 'topic/subtopic'
Outgoing payload: {"color":"red"}
```

È possibile usare la parola chiave AS per rinominare le chiavi. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic':{"color":"red", "temperature":50}
SQL:SELECT color AS my_color FROM 'topic/subtopic'
Outgoing payload: {"my_color":"red"}
```

È possibile selezionare più elementi separandoli con una virgola. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic': {"color":"red", "temperature":50}
SQL: SELECT color as my_color, temperature as fahrenheit FROM 'topic/subtopic'
Outgoing payload: {"my_color":"red","fahrenheit":50}
```

È possibile selezionare più elementi includendo "\$1" per aggiungere gli elementi al payload in ingresso. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic': {"color":"red", "temperature":50}
SQL: SELECT *, 15 as speed FROM 'topic/subtopic'
Outgoing payload: {"color":"red", "temperature":50, "speed":15}
```

È possibile usare la parola chiave `"VALUE"` per produrre payload in uscita che non sono oggetti JSON. Con SQL versione `2015-10-08`, è possibile selezionare solo un elemento. Con SQL versione `2016-03-23` o successiva, è anche possibile selezionare una matrice da produrre come oggetto di primo livello.

**Example**  

```
Incoming payload published on topic 'topic/subtopic': {"color":"red", "temperature":50}
SQL: SELECT VALUE color FROM 'topic/subtopic'
Outgoing payload: "red"
```

È possibile usare la sintassi `'.'` per analizzare in maggiore dettaglio gli oggetti JSON nidificati nel payload in ingresso. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic': {"color":{"red":255,"green":0,"blue":0}, "temperature":50}
SQL: SELECT color.red as red_value FROM 'topic/subtopic'
Outgoing payload: {"red_value":255}
```

Per informazioni su come utilizzare i nomi degli oggetti e delle proprietà JSON che includono caratteri riservati, ad esempio i numeri o il trattino (meno), consulta [Estensioni JSON](iot-sql-json.md)

È possibile usare le funzioni (consulta [Funzioni](iot-sql-functions.md)) per trasformare il payload in ingresso. È possibile utilizzare le parentesi per il raggruppamento. Ad esempio: 

```
Incoming payload published on topic 'topic/subtopic': {"color":"red", "temperature":50}
SQL: SELECT (temperature - 32) * 5 / 9 AS celsius, upper(color) as my_color FROM 'topic/subtopic'
Outgoing payload: {"celsius":10,"my_color":"RED"}
```