排序

ORDER BY 子句添加到 SELECT 语句中,可以按照一列或者多列完成升序、降序排序。

语法结构

SELECT
    column1,
    column2,
    column3,
    ...
FROM
    table_name
ORDER BY
    column1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
    column2 [ASC | DESC] [NULLS FIRST | NULLS LAST];Code language: CSS (css)

参数说明

  • ASC:升序排序,默认排序方式,不写时默认就是 ASC
  • DESC:降序排序
  • NULLS FIRST:将 NULL 值排在非 NULL 数据的前面
  • NULLS LAST:将 NULL 值排在非 NULL 数据的后面
  1. ORDER BY 子句永远写在 SELECT 语句的最后
  2. 支持多列排序,每一列可以设置各自独立的排序规则。

单列降序排序

SELECT name, sex
FROM student
ORDER BY name DESC;

Oracle执行输出:

SQL> select id, name from student order by name desc;

        ID NAME
---------- ----------------
         1 Tom
         3 Lucy
         2 JackCode language: JavaScript (javascript)

多列组合排序

先按照 name 降序,再按照 sex 升序

SQL> select id, name from student order by name desc, sex asc;

        ID NAME
---------- ----------------
         1 Tom
         3 Lucy
         2 JackCode language: JavaScript (javascript)

NULL值控制

-- NULL值排在最前面
SELECT id,name,sex FROM student ORDER BY sex DESC NULLS FIRST;

-- NULL值排在最后面
SELECT id,name,sex FROM student ORDER BY sex DESC NULLS LAST;

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注