ORDER BY 子句

ORDER BY 子句按列或列集合中包含的值对检索到的行进行排序。

当该子句对字符列进行排序时,排序结果取决于列的数据类型,如下所示:
假定您使用非缺省语言环境作为客户机和数据库语言环境,并且针对名为 abonnés 的表进行查询。 该 SELECT 语句在选择列表中指定三个数据类型为 CHAR 的列:numéro(职员编号)、nom(姓)和 prénom(名)。
SELECT numéro,nom,prénom 
   FROM abonnés
      ORDER BY nom;

语句按 nom 列中包含的值对查询结果进行排序。因为 ORDER BY 子句中指定的 nom 列是 CHAR 列,所以数据库服务器按代码集顺序对查询结果进行排序。

如此表所示,以大写字母开头的名称位于以小写字母开头的名称之前,以加注重音符号的字母开头的名称(Ålesund Étaix Ötker Øverst )位于列表末尾。
表 1. 用于 abonnés 表的代码集顺序的数据集
numéro nom prénom
13612 Azevedo Edouardo Freire
13606 Dupré Michéle Françoise
13607 Hammer Gerhard
13602 Hämmerle Greta
13604 LaForêt Jean-Noël
13610 LeMaître Héloïse
13613 Llanero Gloria Dolores
13603 Montaña José Antonio
13611 Oatfield Emily
13609 Tiramisù Paolo Alfredo
13600 da Sousa João Lourenço Antunes
13615 di Girolamo Giuseppe
13601 Ålesund Sverre
13608 Étaix Émile
13605 Ötker Hans-Jürgen
13614 Øverst Per-Anders

但是,如果将 abonnés 表的 numéronomprénom 列定义为 NCHAR 而非 CHAR,那么查询结果不同。

假定非缺省语言环境按下表所示定义整理数据的本地化顺序。该本地化顺序为大写和小写字母以及为相同字母的未加注重音符号和加注重音符号版本定义等价类。
表 2. 用于 abonnés 表的本地化顺序的数据集
numéro nom prénom
13612 Azevedo Edouardo Freire
13601 Ålesund Sverre
13600 da Sousa João Lourenço Antunes
13615 di Girolamo Giuseppe
13606 Dupré Michéle Françoise
13608 Étaix Émile
13607 Hammer Gerhard
13602 Hämmerle Greta
13604 LaForêt Jean-Noël
13610 LeMaître Héloïse
13613 Llanero Gloria Dolores
13603 Montaña José Antonio
13611 Oatfield Emily
13605 Ötker Hans-Jürgen
13614 Øverst Per-Anders
13609 Tiramisù Paolo Alfredo

相同的 SELECT 语句即按本地化顺序返回查询结果,因为 ORDER BY 子句指定的 nom 列为 NCHAR 列。

SELECT 语句支持在 ORDER BY 子句中使用列子串。但是,您需要确保这样使用列子串适合于语言环境支持的代码集。有关更多信息,请参阅列子串中的不完整字符