ORDER BY 子句允许按一列或多列对查询结果进行排序。每一次排序都可以是升序 (ASC) 或降序 (DESC)。如果没有指定任何排序顺序,则按升序 (ASC) 进行排序。
以下查询将返回按名称排序的结果:
SELECT id, name FROM product ORDER BY name
| id | name |
|---|---|
| 400 | Baseball Cap |
| 401 | Baseball Cap |
| 700 | Shorts |
| 600 | Sweatshirt |
| ... | ... |
如果您在 ORDER BY 子句中指定了多列,则排序是嵌套的。
以下语句首先以升序按名称对 product 表中的衬衫进行排序,然后在每一名称内按数量(降序)进行排序:
SELECT id, name, quantity FROM product WHERE name like '%shirt%' ORDER BY name, quantity DESC
| id | name | quantity |
|---|---|---|
| 600 | Sweatshirt | 39 |
| 601 | Sweatshirt | 32 |
| 302 | Tee Shirt | 75 |
| 301 | Tee Shirt | 54 |
| ... | ... | ... |
您可以在选择列表中使用列的位置号,而不使用列名称。列名称和选择列表编号可以混合使用。以下两段语句都与前面的一段语句生成相同的结果。
SELECT id, name, quantity FROM product WHERE name like '%shirt%' ORDER BY 2, 3 DESC SELECT id, name, quantity FROM product WHERE name like '%shirt%' ORDER BY 2, quantity DESC
大多数 SQL 版本都要求 ORDER BY 项出现在选择列表中,但 Adaptive Server Anywhere 没有这样的限制。以下查询是按数量对结果进行排序的,尽管该列不出现在选择列表中:
SELECT id, name FROM product WHERE name like '%shirt%' ORDER BY 2, quantity DESC
对于 ORDER BY,以升序排列时 NULL 排在所有其他值之前。
ORDER BY 子句对混合大小写数据的影响取决于在创建数据库时指定的数据库归类和大小写。
显式限制查询返回的行数
ORDER BY 和 GROUP BY
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。