MySQL基礎第三彈

#進階3: 排序查詢
引入
USE myemployees;函數

/*排序


SELECT * FROM employees;it

語法:
select 查詢列表
from 表
【where 篩選條件】
order by 排序列表【asc| desc】
特色:
1.asc表明的是升序,desc表明是降序
不寫,默認升序
2.order by 字句中能夠支持單個字段、多個字段、表達式、函數、別名
3.order by 字句通常是放在查詢語句的最後面,limit字句除外
*/io

#案例:查詢員工信息,要求工資從高到低排序
SELECT * FROM employees ORDER BY salary DESC;
SELECT * FROM employees ORDER BY salary;#加不加asc都okast

#案例2:查詢部門編號編號>=90的員工信息,按入職時間的前後進行排序
SELECT * FROM employees WHERE department_id >=90 ORDER BY hiredate;email

#案例3:按年薪的高低顯示員工的信息和年薪【按表達式排序】
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
#案例4:按年薪的高低顯示員工的信息和年薪【按別名排序】date

SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC;
#案例5:按姓名的長度顯示員工的姓名和工資【按函數排序】
SELECT LENGTH(last_name) 字節長度,last_name,salary
FROM employees
ORDER BY LENGTH(last_name) DESC;select

#案例6:查詢員工信息,要求先按工資升序,再按員工編號降序【按多個字段排序】
SELECT *
FROM employees
ORDER BY salary ASC, employee_id DESC;進階

 

#1.查詢員工的姓名和部門號和年薪,按年薪降序 按姓名升序
SELECT `last_name`,department_id,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
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的員工信息,並先按郵箱的字節數降序,在按部門號升序SELECT *,LENGTH(email)FROM employeesWHERE email LIKE '%e%'ORDER BY LENGTH(email) DESC, department_id;

相關文章
相關標籤/搜索