排序查詢 order by 子句

2021-10-23 06:20:59 字數 2149 閱讀 4726

1-基礎查詢 select * from employees

2-排序查詢語法:基礎查詢 加上 子句order by

③select 查詢列表

①from 表

②【where 篩選條件】(可選)

④order by 排序列表 【asc / desc】(可選)(公升/降)

預設公升序排列

3-order by 字句中可以是單個字段,多個字段,表示式,函式,別名

4-order by 子句一般是放在查詢語句最後面,,除了limit子句

# 案例 查詢員工資訊,要求工資從高到低排序

select

* from

employees

order by salary desc ;

/*預設公升序 select * from employees order by salary asc (公升序排列時候 asc 可以去掉)*/

##案例 查詢部門編號 >= 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 ;

# 案例 按年新高低顯示員工資訊 和 年薪 【按別名排序】

#上方表示式較長 order by 後面支援別名所代表的表示式 可簡化

select

*,salary * 12 * (1+ ifnull(commission_pct, 0)) as 年薪

from

employees

order by 年薪 desc ;

#案例 按姓名的長度顯示員工的姓名和工資 【按函式排序】

select

length(last_name) as 位元組長度,

last_name,

salary

from

employees

order by length(last_name) desc ;

#案例 查詢員工資訊,要求按工資排序,再按員工編號排序

#整體按照salary排序,salary相同,id按照降序排,類似於,排序關鍵字1.2.3.4.....

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 ;

#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)

/*(length(email))可選,新增上方便檢視length資訊*/

from

employees

where email like '%e%'

order by length(email) desc,

department_id asc ;

SQL之排序檢索 order by子句

由於select語句的輸出是沒有特定的順序,可以使用order by子句來排序檢索出來的結果。注意 order by子句應該保證它是select語句中最後的一條子句。select prod name from products order by prod name 對prod name列以字母順序來...

對於order by子句

order by子句指定排序順序 select username from user order by username 依據username的字母順序對於查詢出來的username進行排序,預設是公升序 a z 也可以進行降序排序,必須指定desc關鍵字 在上面的sql語句變為 select us...

關於子查詢中的order by子句

關於子查詢中能否用order by子句,有以下兩種情況 第一種例如 select a.col1 from a where a.col2 in select b.col2 from b order by b.col1 這種情況下子查詢只是乙個集合,並不需要進行order by。第二種例如 select...