

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 ;
```

Para ver una tabla que asigna JSON-encoded los tipos de datos 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 agrupamiento en clústeres en las cláusulas de ordenación. Non-clusteringno se permiten columnas. 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 [Client-side marcas de tiempo 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).