升序和降序

您可使用 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 行之后。