不以任何特定顺序排列查询的结果。例如:图 4和图 2以随机顺序显示。 可以将 ORDER BY 子句添加到您的 SELECT 语句里指导系统以特定顺序对数据进行排 序。ORDER BY 子句是任何远程或本地表或视图中的列名的列表。投影列表中允许的所有
GBase 8s SQL 指南:教程 南大通用数据技术股份有限公司 - 24 - 表达式在 ORDER BY 列表中也允许。如果在 ORDER BY 列表中使用的列具有选择触发 器,那么将不会激活该触发器。 以下查询返回 manufact 表中 manu_code 、manu_name 和 lead_time 列的每一行。并根 据 lead_time 进行排序。 图: 查询 SELECT manu_code, manu_name, lead_time FROM manufact ORDER BY lead_time; 对于 GBase 8s,不需要在投影列表中包括您想要在 ORDER BY 子句中使用的列。即,可 以根据不在投影列表中检索的列对数据进行排序。以下查询返回 manufact 表中 manu_code 、 manu_name 列的每一行,并根据 lead_time 进行排序。lead_time 列位于 ORDER BY 子句 中(尽管未包含在投影列表中)。 图: 查询 SELECT manu_code, manu_name FROM manufact ORDER BY lead_time;
降序 降序与升序相反, 对于字符类型为从小写 z 到大写 A, 对于数字类型为从最大值到最小值。 DATE 和 DATETIME 数据按照从最新到最早排序, INTERVAL 数据按从时间范围最长到 最短排序。以下查询显示了降序的示例。 图: 查询 SELECT * FROM manufact ORDER BY lead_time DESC; 列名后跟关键字 DESC 导致以降序对检索数据进行排序,如下图所示: 图: 查询结果 manu_code manu_name lead_time
SHM Shimara 30 KAR Karsten 21
GBase 8s SQL 指南:教程 南大通用数据技术股份有限公司 - 25 - PRC ProCycle 9 NKL Nikolus 8 NRG Norge 7 HSK Husky 5 ANZ Anza 5 HRO Hero 4 SMT Smith 3 您可以在 ORDER BY 子句中指定任何内置数据类型的列(TEXT 、BYTE 、BLOB 或 CLOB 除外),数据库服务器根据该列中的值对数据进行排序。
对多个列进行排序 还可以使用 ORDER BY 排序两个或多个列,这会创建嵌套排序。缺省值仍然是升序。在 ORDER BY 子句中最先列出的列优先。 下列查询和图 2及相应的查询结果显示了嵌套排序。要修改显示所选数据的顺序。更改在 ORDER BY 子句中命名的两个列的顺序。 SELECT stock_num, manu_code, description, unit_price FROM stock ORDER BY manu_code, unit_price; 查询结果中,manu_code 列数据按字母顺序显示,并且在同一 manu_code(例如:ANZ 、 HRO)中,unit_price 以升序列出。 图: 查询结果 stock_num manu_code description unit_price