排序

在 SELECT 敘述中加入 ORDER BY 子句,可以依據一或多個欄位完成遞增、遞減排序。

語法結構

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;Code language: PHP (php)

排序

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *