#高階3:排序查詢
/*引入:
select * from employees;
語法: select 查詢列表
from 表
(where 篩選條件)
order by 排序列表 (aec/desc)
特點: 1,asc代表的是公升序,desc代表降序
如果不寫,預設是公升序
2,order by 字句中可以支援單個字段,多個字段,表示式,函式,別名
3,order by 字句一般是放在查詢語句的最後,limit字句除外
*/#案例1:查詢員工資訊,要求工資從高到底排序
select * from employees order by salary desc;
#案例2:查詢部門編號》=90的員工資訊,按入職時間的先後進行排序(新增篩選條件)
select *
from employees
where department_id>=90
order by hiredate asc;
#案例3:按年薪的高低顯示員工的資訊和年薪(按表示式排序)
select *,salary*12*(1+ifnull(commission_pct,0)) 年薪
from employees
order by salary*12*(1+ifnull(commission_pct,0)) desc;
案例4:按年薪的高低顯示員工的資訊和年薪(按表示式排序)
select *,salary*12*(1+ifnull(commission_pct,0)) 年薪
from employees
order by 年薪 desc;
#案例5:按姓名的長度顯示員工的姓名和工資(按函式排序)
select length('last_name') 位元組長度,lase_name,salary
from employees
order by length(last_name) desc;
#案例6:查詢員工資訊,要求先按工資排序,再按員工編號排序(按多個字段排序)
select *
from employees
order by salary asc,employee_id desc;
#1,查詢員工的姓名和部門號和年薪,按年薪降序 按姓名公升序
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的員工資訊,並先按郵箱的位元組數降序,再按部門號公升序
select *,length(email)
from employees
where email like '%e%'
order by length(email) desc,department_id asc;
4 2氣泡排序
氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算...
4 2 查詢類命令
find 將系統內符合表示式的檔案列出來。需要詳細資訊,只有完全符合的才會顯示出來 根據以下規則判斷path和expression 在乙個命令上第乙個 之前的部分為path,之後的為expression。如果path是空字串,則使用當前路徑 如果expression是空字串,則使用為預設expres...
4 2三值排序 貪心
題目 排序是一種很頻繁的計算任務。乙個實際的例子是,當我們給某項競賽的優勝者按金銀銅牌排序的時候。在這個任務中可能的值只有三種1,2和3。我們用交換的方法把他排成公升序的。寫乙個程式計算出,計算出的乙個包括1 2 3三種值的數字序列,排成公升序所需的最少交換次數。輸入第1行為類別的數量n 1 n 1...