

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
<a name="iot-sql-select"></a>

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](iot-sql-data-types.md)[Operadores](iot-sql-operators.md),[Funciones](iot-sql-functions.md),[Literales](iot-sql-literals.md),[Instrucciones case](iot-sql-case.md), [Extensiones JSON](iot-sql-json.md)[Consultas de objetos anidados](iot-sql-nested-queries.md), [Variables](iot-sql-set.md#iot-sql-set-usage) y[Cargas binarias](binary-payloads.md).

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 '\$1' 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.

**Example**  

```
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](iot-sql-json.md)

Puede utilizar funciones (consulte [Funciones](iot-sql-functions.md)) 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"}
```