Cláusula SELECT - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cláusula SELECT

La cláusula AWS IoT SELECT es básicamente la misma que la cláusula SELECT de ANSI SQL, con algunas pequeñas diferencias.

La cláusula SELECT admite Tipos de datos, Operadores, Funciones, Literales, Instrucciones case, Extensiones JSON, Plantillas de sustitución, Consultas de objetos anidados y Cargas binarias.

Puede utilizar la cláusula SELECT para extraer información de los mensajes MQTT de entrada. También puede utilizar SELECT * para recuperar toda la carga del mensaje de entrada. Por ejemplo:

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 carga es un objeto JSON, puede hacer referencia a claves en el objeto. La carga de salida contiene el par clave-valor. Por ejemplo:

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

Puede utilizar la palabra clave AS para cambiar el nombre de las claves. Por ejemplo:

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"}

Puede seleccionar varios elementos separándolos con una coma. Por ejemplo:

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}

Puede seleccionar varios elementos incluido '*' para agregar elementos a la carga de entrada. Por ejemplo:

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}

Puede utilizar la palabra clave "VALUE" para generar cargas de salida que no sean objetos JSON. Con la versión 2015-10-08 de SQL, solo se puede seleccionar un elemento. Con la versión SQL 2016-03-23 o posterior, también puede seleccionar una matriz para generar como objeto de nivel superior.

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

Puede utilizar la sintaxis '.' para explorar objetos JSON anidados en la carga de entrada. Por ejemplo:

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}

Para obtener información sobre cómo utilizar nombres de objetos y propiedades JSON que incluyen caracteres reservados, como números o el carácter de guion (signo negativo), consulte Extensiones JSON

Puede utilizar funciones (consulte Funciones) para transformar la carga de entrada. Puede utilizar paréntesis para realizar agrupaciones. Por ejemplo:

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"}