Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Clause SELECT
La clause AWS IoT SELECT est essentiellement identique à la clause ANSI SQL SELECT, avec quelques différences mineures.
La clause SELECT prend en charge Types de données, Opérateurs, Fonctions, Littéraux, Instructions Case, Extensions JSON, Modèles de substitution, Requêtes d'objets imbriqués, et Charges utiles binaires.
Vous pouvez utiliser la clause SELECT pour extraire les informations des messages entrants MQTT. Une clause SELECT *
peut être utilisée pour récupérer toute la charge utile du message entrant. Par exemple :
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL statement:SELECT * FROM 'topic/subtopic'
Outgoing payload:{"color":"red", "temperature":50}
Si la charge utile est un objet JSON, vous pouvez référencer des clés dans l'objet. Votre charge utile sortante contient la paire clé-valeur. Par exemple :
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL statement:SELECT color FROM 'topic/subtopic'
Outgoing payload:{"color":"red"}
Vous pouvez utiliser le même mot-clé AS pour renommer des clés. Par exemple :
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"}
Vous pouvez sélectionner plusieurs éléments en les séparant par une virgule. Par exemple :
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}
Vous pouvez sélectionner plusieurs éléments comprenant « * » pour ajouter des éléments dans la charge utile entrante. Par exemple :
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}
Vous pouvez utiliser le mot-clé "VALUE"
pour produire les charges utiles sortantes qui ne sont pas des objets JSON. Avec la version SQL 2015-10-08
, vous ne pouvez sélectionner qu'un seul élément. Avec la version SQL 2016-03-23
ou une version ultérieure, vous pouvez également sélectionner un tableau à afficher en tant qu'objet de niveau supérieur.
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT VALUE color FROM 'topic/subtopic'
Outgoing payload:"red"
Vous pouvez utiliser une syntaxe '.'
pour explorer des objets JSON imbriqués dans la charge utile entrante. Par exemple :
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}
Pour plus d’informations sur l’utilisation des noms d’objets et de propriétés JSON qui incluent des caractères réservés, tels que des chiffres ou le trait d’union (moins), veuillez consulter Extensions JSON
Vous pouvez utiliser des fonctions (voir Fonctions) pour transformer la charge utile entrante. Vous pouvez utiliser des parenthèses pour le regroupement. Par exemple :
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"}