Clausola SELECT - AWS IoT Core

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

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

La clausola SELECT supporta Tipi di dati, Operatori, Funzioni, Valori letterali, Istruzioni case, Estensioni JSON, Modelli di sostituzione, Query di oggetti nidificati e Payload binari.

È 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 "*" 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.

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

È possibile usare le funzioni (consulta Funzioni) 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"}