SQL - ORDER BY 子句:掌握數據排序

你好,未來的 SQL 巫師們!我很興奮能夠帶領你們進入 SQL 的 ORDER BY 子句的神奇世界。作為你們親切友善的鄰居計算機老師,並且擁有多年經驗,我答應讓這次旅行既充滿信息又充滿樂趣。所以,請繫好安全帶,讓我們一起進入數據排序的藝術!

SQL - Order By Clause

SQL ORDER BY 子句:你數據的最好朋友

想像你正在整理書架。你可能想要按照作者的姓名、出版日期,甚至是書的厚度來排列書籍。在數據庫的領域中,ORDER BY 子句就是你的可靠助手,用於這樣的任務。這就像是在你的指尖上有一個超高效的圖書管理員!

ORDER BY 的基本語法簡單得令人愉悅:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

讓我們用一個真實世界的例子來分解這個語法。假設我們有一個名為 books 的表:

SELECT title, author, publication_year
FROM books
ORDER BY publication_year;

這個查詢會检索所有書籍,並按出版年份升序(從最舊到最新)排序。就是這麼簡單!

ORDER BY 子句與 ASC:攀登梯子

ORDER BY 默認按升序(ASC)排序。這就像從地面攀爬梯子。讓我們看看它是如何工作的:

SELECT product_name, price
FROM products
ORDER BY price ASC;

這個查詢會從最便宜的產品列出到最昂貴的產品。對於喜歡便宜貨的人來說,這是完美的!

ORDER BY 子句與 DESC:乘電梯下樓

有時候,我們想從頂端開始。這就是 DESC(降序)派上用場的地方。這就像從頂樓乘電梯下來。

SELECT student_name, score
FROM exam_results
ORDER BY score DESC;

這個查詢會顯示學生的姓名和成績,最高分的学生會排在最上面。是時候為那些表現出色的學生慶祝了!

ORDER BY 子句對多個列進行排序:優先級的藝術

生活不總是簡單的,數據排序也是。有時候我們需要按照多個標準進行排序。ORDER BY 會支持你!

SELECT employee_name, department, salary
FROM employees
ORDER BY department ASC, salary DESC;

這個查詢首先按部門(字母順序)對員工進行排序,然後在每个部門內按薪水(從最高到最低)進行排序。這就像組織公司名錄,但更有趣!

ORDER BY 與 WHERE 子句:動態二重奏

WHERE 和 ORDER BY 常常一起工作,就像 SQL 世界的蝙蝠俠和羅賓。先過濾,再排序。看看這個:

SELECT product_name, stock_quantity
FROM inventory
WHERE stock_quantity < 50
ORDER BY stock_quantity ASC;

這個查詢會找出庫存數量少於 50 件的產品,並按庫存數量從低到高排序。這對於識別哪些產品需要立即補貨來說是完美的!

ORDER BY 與 LIMIT 子句:挑選精華

有時候,我們只想挑選出精華。這時 LIMIT 派上用場:

SELECT customer_name, total_purchases
FROM customers
ORDER BY total_purchases DESC
LIMIT 5;

這個查詢會根據購買總額給你提供前 5 名客戶。這就像為你的業務創建一個 VIP 名單!

按偏好順序排序結果:玩轉喜愛

SQL 允許我們定義自定義排序順序。這就像成為你的數據的 DJ —— 你決定下一步播放什麼!

SELECT product_name, category
FROM products
ORDER BY CASE category
WHEN 'Electronics' THEN 1
WHEN 'Books' THEN 2
WHEN 'Clothing' THEN 3
ELSE 4
END;

這個查詢按類別對產品進行排序,但按照我們定義的特定順序。電子產品排在第一位,其次是書籍,然後是服裝,其他所有類別排在之後。這對於展示你的優先產品來說是完美的!

這裡有一個便捷的表格,總結了我們所涵蓋的 ORDER BY 方法:

方法 描述 示例
基本 ORDER BY 默認按升序排序 ORDER BY column_name
ASC 明確按升序排序 ORDER BY column_name ASC
DESC 按降序排序 ORDER BY column_name DESC
多個列 按指定的多個列排序 ORDER BY column1, column2 DESC
與 WHERE 一起使用 在排序前過濾數據 WHERE condition ORDER BY column_name
與 LIMIT 一起使用 在排序後限制行數 ORDER BY column_name LIMIT n
自定義順序 定義自定義排序順序 ORDER BY CASE...WHEN...THEN...END

就是这样,各位!你們剛剛通過 ORDER BY 子句升級了你的 SQL 技能。記住,熟能生巧,所以不要害怕嘗試這些查詢。在你還沒有意識到之前,你會像專家一樣排序數據,讓你的同事印象深刻,甚至可能獲得那份夢寐以求的數據分析工作!

愉快地查詢,願你的數據總是完美排序!

Credits: Image by storyset