三、排序查詢
阿新 • • 發佈:2021-08-19
語法
SELECT 查詢列表 FROM 表 WHERE 篩選條件 ORDER BY 排序列表 【asc|desc】
特點
- asc代表的是升序,desc代表的是降序;如果order by 後不寫,則預設代表升序
- order by子句中可以支援單個欄位、多個欄位、表示式、函式、別名
- order by子句一般放在查詢語句的最後面,limit子句除外
- 執行順序:1.from 表>where 篩序條件>select查詢列表>order by
示例
# 示例一:查詢員工資訊,要求工資排序 SELECT * FROM employees ORDER BY salary DESC;SELECT * FROM employees ORDER BY salary ASC; # 示例二:查詢部門編號>=90的員工資訊,按入職時間的先後進行排序【新增篩選條件】 SELECT * FROM employees WHERE department_id >= 90 ORDER BY hiredate ASC; # 示例三:按年薪的高低顯示員工的資訊和年薪【按表示式】 SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC; # 示例四:按年薪的高低顯示員工的資訊和年薪【按別名】 SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDER BY 年薪 DESC; # 示例五:按姓名的長度顯示員工的姓名和工資【按函式排序】 SELECT LENGTH(last_name) 姓名長度,last_name,salary FROM employees ORDER BY LENGTH(last_name) DESC; # 示例六:查詢員工資訊,要求先按工資升序,再按員工編號降序【按多個欄位排序】 SELECT * FROMemployees ORDER BY salary asc,employee_id DESC;