MySQL數(shù)據(jù)庫(kù):第四章:排序查詢
作者:java_wxid
回退至Mysql數(shù)據(jù)庫(kù)理論與實(shí)戰(zhàn)
#進(jìn)階3:排序查詢
語(yǔ)法:
select 查詢列表——————③
from 表名——————①
where 條件——————②
order by 排序列表 asc|desc;——————④
特點(diǎn):
1、
asc代表的是升序。升序是默認(rèn)行為
desc代表的是降序。
2、排序列表支持單個(gè)字段、表達(dá)式、函數(shù)、別名,也支持以上的組合
3、order by子句一般放在查詢語(yǔ)句的最后!
#1、通過(guò)單個(gè)字段進(jìn)行簡(jiǎn)單的排序
#案例;按工資降序
SELECT * FROM employees ORDER BY salary DESC;
#2、通過(guò)表達(dá)式進(jìn)行排序
#案例:查詢員工編號(hào)>110的姓名、編號(hào)、年薪,并且按年薪升序
SELECT last_name,employee_id,salary*12*(1+IFNULL(commission_pct,0))
FROM employees
WHERE employee_id>110
ORDER BY salary*12*(1+IFNULL(commission_pct,0));
#3、通過(guò)別名進(jìn)行排序
#案例:查詢員工編號(hào)>110的姓名、編號(hào)、年薪,并且按年薪降序
SELECT last_name,employee_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
WHERE employee_id>110
ORDER BY 年薪 DESC;
#4、通過(guò)函數(shù)的結(jié)果進(jìn)行排序
#案例:按姓名的長(zhǎng)度進(jìn)行升序
SELECT LENGTH(last_name) len,last_name
FROM employees
ORDER BY len;
#5、支持按多個(gè)字段或多個(gè)表達(dá)式排序
#案例:先按姓名的長(zhǎng)度進(jìn)行升序,然后再按姓名的字符進(jìn)行降序
SELECT LENGTH(last_name) len,last_name
FROM employees
ORDER BY len,last_name DESC;
#1. 查詢員工的姓名和部門(mén)號(hào)和年薪,按年薪降序 按姓名升序
SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC,last_name ASC;
#2. 選擇工資不在 8000 到 17000 的員工的姓名和工資,按工資降序
SELECT last_name,salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC;
#3. 查詢郵箱中包含 e 的員工信息,并先按郵箱的字節(jié)數(shù)降序,再按部門(mén)號(hào)升序
SELECT *
FROM employees
WHERE email LIKE '%e%'
ORDER BY LENGTH(email) DESC,department_id ASC;