排序查詢(升序)
select
hiredate
from
employees
order by hiredate asc ;
排序查詢(降序)
select
hiredate
from employees
order by hiredate desc ;
查詢員工信息,要求工資從高到低排序
select
*
from
employees salary order by salary desc;
查詢部門編號 >= 90的員工信息,按入職時間的先后進行排序
select
*
from
employees
where department_id >= 90 order by hiredate asc ;
查詢 按年薪的高低顯示員工信息 和 年薪 (帶表達式的操作)
select
*,salary*12*(1+ifnull(commission_pct,0)) as "年薪"
from
employees
order by salary*12*(1+ifnull(commission_pct,0)) desc ;
查詢 按年薪的高低顯示員工信息 和 年薪 (按別名排序)
select
*,salary*12*(1+ifnull(commission_pct,0)) as "年薪"
from
employees
order by 年薪 desc ;
按姓名的長度顯示員工的姓名和工資【按函數排序】
select
last_name,salary,length(last_name) as "姓名長度"
from
employees
order by length(last_name) desc;
查詢員工信息,要求先按工資升序,再按員工編號降序序
注意:如果你排序的這兩列其中一列中有相同的數據的話
會導致另外一列排序的大小有大的在前面,如下圖:
select
salary,employee_id
from
employees
order by salary asc ,employee_id desc;
下面是練習題
- 1.查詢員工的姓名和部門號和年薪,按年薪降序,按姓名升序
select
last_name as "姓名",
department_id "部門號",
salary*12*(1+ifnull(commission_pct,0)) as "年薪"
from
employees
order by 年薪 desc,last_name asc;
- 2.查詢工資不在8000到17000的員工的姓名和工資,按工資降序排列;
select
salary
from
employees
where salary not between 8000 and 17000
order by salary desc;
- 3.查詢郵箱中包含e的員工信息,并且按郵箱的字節(jié)數降序,再按部門號升序
select
*
from
employees
where email like '%e%'
order by length(email) desc ,department_id asc ;