升序和降序
您可使用 ASC 和 DESC 关键字来指定升序(最小值在先)或降序(最大值在先)。
缺省的顺序为升序。对于 DATE 和 DATETIME 数据类型,最小的意思是时间上最早的,最大的
意思是时间上最晚的。对于在缺省的语言环境中的字符数据类型,该顺序为 ASCII 顺序序列,如
U.S. English 数据的排序顺序 中所列。
对于 NCHAR 或 NVARCHAR 数据类型,使用当前会话的本地化顺序排序,如果那与代码集顺序
不同的话。要获取更多关于排序的信息,请参阅 SET COLLATION 语句。
如果您指定 ORDER BY 子句,则在缺省情况下,NULL 值的排序小于非 NULL 值。使用 ASC
顺序,则 NULL 值排在任何非 NULL 值之前;使用 DESC 顺序,则 NULL 排在最后。
指定 NULL 值的顺序;
ORDER BY 子句可包括 NULLS FIRST 关键字或 NULLS LAST 关键字来显式地(抑或覆盖)展
示 NULL 值的缺省的排序顺序:
• NULLS FIRST 关键字指示数据库服务器将 NULL 值排在排序的查询结果的最前面。按降
序排序,ASC NULLS FIRST 关键字请求缺省的顺序。在降序排序中,DESC NULLS FIRST
指定在排序键列中的带有 NULL 值的行排在排序的结果集中非 NULL 行的前面。
• NULLS LAST 关键字指示数据库服务器将 NULL 值排在排序的查询结果的最后面。在降
序排序中,DESC NULLS LAST 关键字请求缺省的顺序。在降序排序中,ASC NULLS
LAST 指定在排序键列中的带有 NULL 值的行跟在排序的结果集中非 NULL 行之后。
嵌套排序
如果您在 ORDER BY 子句中罗列多个列,则您的查询按照嵌套的排序排列。排序的第一级是基于
第一列的;第二列决定排序的第二级。下列嵌套排序的示例选择 cust_calls 表中的所有行,通过
call_code 之内的 call_code 和 call_dtime 对它们进行排序:
SELECT * FROM cust_calls ORDER BY call_code, call_dtime;




