

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

# 排序
<a name="CWL_QuerySyntax-Sort"></a>

 使用 `sort` 按指定字段依升序（`asc`）或降序（`desc`）顺序显示日志事件。您可以将其与 `limit` 命令一起使用，创建“前 N 个”或“后 N 个”查询。

该排序算法是自然排序的更新版本。如果按升序排序，则使用以下逻辑。
+  所有非数字值均位于所有数字值之前。*数字值*是仅包含数字的值，而不是数字和其他字符的混合。
+ 对于非数字值，该算法将连续的数字字符和连续的字母字符分组为单独的块进行比较。它按 Unicode 值对非数字部分进行排序，并首先按长度对数字部分进行排序，然后按其数值进行排序。

有关 Unicode 顺序的更多信息，请参阅 [List of Unicode characters](https://en.wikipedia.org/wiki/List_of_Unicode_characters)。

例如，以下是按升序排序的结果。

```
!:	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sorted by unicode order
#
*%04
0#	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Alphanumeric starting with numbers
5A
111A   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Starts with more digits than 5A, so it sorted to be later than 5A
2345_
@	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2345 is compared with @ in the unicode order, 
@_
A	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Values starting with letters
A9876fghj
a12345hfh
0	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Number values
01
1
2
3
```

如果按降序进行排序，则排序结果是相反的。

例如，以下针对 Amazon VPC 流日志的查询会发现主机间的前 15 个数据包传输。

```
stats sum(packets) as packetsTransferred by srcAddr, dstAddr
    | sort packetsTransferred  desc
    | limit 15
```