

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.

# SELECT
<a name="cql.dml.select"></a>

Utilice una instrucción SELECT para consultar datos. 

**Sintaxis**

```
select_statement ::=  SELECT  [ JSON ] ( select_clause | '*' )
                      FROM table_name
                      [ WHERE 'where_clause' ]
                      [ ORDER BY 'ordering_clause' ]
                      [ LIMIT (integer | bind_marker) ]
                      [ ALLOW FILTERING ]
select_clause    ::=  selector [ AS identifier ] ( ',' selector [ AS identifier ] )
selector         ::=  column_name
                      | term
                      | CAST '(' selector AS cql_type ')'
                      | function_name '(' [ selector ( ',' selector )* ] ')'
where_clause     ::=  relation ( AND relation )*
relation         ::=  column_name operator term
                      TOKEN
operator         ::=  '=' | '<' | '>' | '<=' | '>=' | IN | CONTAINS | CONTAINS KEY
ordering_clause  ::=  column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*
```

**Ejemplos**

```
SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;

SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;
```

Acerca de una tabla que asigne los tipos de datos codificados en JSON a los tipos de datos de Amazon Keyspaces, consulte [Codificación JSON de los tipos de datos de Amazon Keyspaces](cql.elements.md#cql.data-types.JSON).

**Uso de la palabra clave `IN`**

La palabra clave `IN` especifica la igualdad de uno o más valores. Se puede aplicar a la clave de partición y a la columna de agrupación. Los resultados se devuelven en el orden en que se presentan las claves en la instrucción `SELECT`.

**Ejemplos**

```
SELECT * from mykeyspace.mytable WHERE primary.key1 IN (1,2) and clustering.key1 = 2;
SELECT * from mykeyspace.mytable WHERE primary.key1 IN (1,2) and clustering.key1 <= 2;
SELECT * from mykeyspace.mytable WHERE primary.key1 = 1 and clustering.key1 IN (1, 2);
SELECT * from mykeyspace.mytable WHERE primary.key1 <= 2 and clustering.key1 IN (1, 2) ALLOW FILTERING;
```

Para obtener más información sobre la palabra clave `IN` y la forma en que Amazon Keyspaces procesa la instrucción, consulte [Uso del operador `IN` con la instrucción `SELECT` en una consulta en Amazon Keyspaces](in.select.md).

**Ordenación de los resultados**

La cláusula `ORDER BY` especifica el orden de clasificación de los resultados devueltos. Toma como argumentos una lista de nombres de columnas junto con el orden de clasificación de cada columna. Solo puede especificar columnas de agrupación en las cláusulas de ordenación. Las columnas no agrupadas no están permitidas. Las opciones de ordenación son `ASC` para ordenación ascendente y `DESC` para ordenación descendente. Si se omite el orden de clasificación, se utiliza el orden predeterminado de la columna de agrupación. Acerca de los posibles criterios de ordenación, consulte. [Ordenación de resultados con `ORDER BY` en Amazon Keyspaces](ordering-results.md)

**Ejemplo**

```
SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;
```

Al utilizar `ORDER BY` con la palabra clave `IN`, los resultados se ordenan dentro de una página. No se admite la reordenación completa con la paginación deshabilitada.

**TOKEN**

Puede aplicar la función `TOKEN` a la columna `PARTITION KEY` en las cláusulas `SELECT` y `WHERE`. Con la función `TOKEN`, Amazon Keyspaces devuelve filas basadas en el valor del token asignado de la `PARTITION_KEY` en lugar de en el valor de la `PARTITION KEY`.

Las relaciones `TOKEN` no se admiten con la palabra clave `IN`.

**Ejemplos**

```
SELECT TOKEN(id) from my_table; 

SELECT TOKEN(id) from my_table WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;
```

**Función TTL**

Puede utilizar la función `TTL` con la instrucción `SELECT` para recuperar el tiempo de caducidad en segundos que se almacena para una columna. Si no se establece ningún valor `TTL`, la función devuelve `null`.

**Ejemplo**

```
SELECT TTL(my_column) from my_table;
```

La función `TTL` no se puede utilizar en columnas multicelda, como las colecciones.

**Función WRITETIME**

Puede utilizar la función `WRITETIME` con la instrucción `SELECT` para recuperar la marca de tiempo que se almacena como metadatos para el valor de una columna solo si la tabla utiliza marcas de tiempo en el lado del cliente. Para obtener más información, consulte [Marcas de tiempo del cliente en Amazon Keyspaces](client-side-timestamps.md). 

```
SELECT WRITETIME(my_column) from my_table;
```

La función `WRITETIME` no se puede utilizar en columnas multicelda, como las colecciones.

**nota**  
Por compatibilidad con el comportamiento establecido de los controladores Cassandra, las políticas de autorización basadas en etiquetas no se aplican cuando se realizan operaciones en tablas del sistema mediante llamadas a la API de Cassandra Query Language (CQL) a través de los controladores y las herramientas para desarrolladores de Cassandra. Para obtener más información, consulte [Acceso a recursos de Amazon Keyspaces basado en etiquetas](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-tags).