

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon Keyspaces 中使用 `ORDER BY` 对结果排序
<a name="ordering-results"></a>

`ORDER BY` 子句指定 `SELECT` 语句中返回的结果的排序顺序。此语句将一系列列名称作为参数，您可以为每个列指定数据的排序顺序。您只能在排序子句中指定聚类列，不能指定非聚类列。

可用于返回的结果的两个排序顺序选项是 `ASC`（用于升序排序顺序）和 `DESC`（用于降序排序顺序）。

```
SELECT * FROM my_keyspace.my_table ORDER BY (col1 ASC, col2 DESC, col3 ASC);

         col1 | col2 | col3  
        ------+------+------
          0   |  6   |  a   
          1   |  5   |  b   
          2   |  4   |  c   
          3   |  3   |  d   
          4   |  2   |  e   
          5   |  1   |  f   
          6   |  0   |  g
```

```
SELECT * FROM my_keyspace.my_table ORDER BY (col1 DESC, col2 ASC, col3 DESC);

         col1 | col2 | col3  
        ------+------+------
          6   |  0   |  g   
          5   |  1   |  f   
          4   |  2   |  e   
          3   |  3   |  d   
          2   |  4   |  c   
          1   |  5   |  b   
          0   |  6   |  a
```

如果您未在查询语句中指定排序顺序，则使用聚类列的默认排序顺序。

您可以在排序子句中使用的可能排序顺序取决于创建表时为每个聚类列分配的排序顺序。查询结果只能按照创建表时为所有聚类列定义的顺序或与定义的排序顺序相反的顺序进行排序。不允许使用其他可能的组合。

例如，如果表的 `CLUSTERING ORDER` 是 (col1 ASC, col2 DESC, col3 ASC)，则 `ORDER BY` 的有效参数是 (col1 ASC, col2 DESC, col3 ASC) 或 (col1 DESC, col2 ASC, col3 DESC)。有关 `CLUSTERING ORDER` 的更多信息，请参阅 [CREATE TABLE](cql.ddl.table.md#cql.ddl.table.create) 下的 `table_options`。