排序查詢(42)

2021-09-12 11:44:12 字數 1676 閱讀 1529

#高階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...