描述
ORDER BY 子句用于对查询的完整结果集进行全局排序,其支持 ASC(升序)、DESC(降序)以及 NULLS FIRST / NULLS LAST 排序。语法
ORDER BY { expression [ sort_direction | nulls_sort_order ] [ , ... ] }
参数
子句/关键字 | 说明 |
ORDER BY | 指定以逗号分隔的表达式列表,可附加 sort_direction 和 nulls_sort_order 参数来控制行排序。 |
expression | 需要排序的列名。 |
sort_direction | 可选指定行的升序或降序排序。有效值为 ASC(升序)和 DESC(降序)。若未显式指定,默认按升序排列。 语法:[ ASC | DESC ] |
nulls_sort_order | 可选指定 NULL 值在非 NULL 值之前/之后返回。若未指定:升序排序时 NULL 默认排在最前。降序排序时 NULL 默认排在最后。若指定: NULLS FIRST 时,无论排序方向如何,NULL 值总在最前。NULLS LAST 时,无论排序方向如何,NULL 值总在最后。语法: [ NULLS { FIRST | LAST } ] |
示例
-- ORDER BY ASCSELECT * FROM VALUES (3,'c'),(1,'a'),(2,'b') AS t(id,name) ORDER BY id ASC-- ORDER BY DESCSELECT * FROM VALUES (3,'c'),(1,'a'),(2,'b') AS t(id,name) ORDER BY id DESC-- ORDER BY NULLS FIRSTSELECT * FROM VALUES (3,NULL),(1,'a'),(2,NULL) AS t(id,name) ORDER BY name ASC NULLS FIRST-- ORDER BY NULLS LASTSELECT * FROM VALUES (3,NULL),(1,'a'),(2,NULL) AS t(id,name) ORDER BY name ASC NULLS LAST