首先說下order by
order by asc是公升序
一般預設是公升序
降序的話是order by desc
如果我們想按照指定的字段順序來排列怎麼做呢
有乙個表t
以下是select * from t
id name country
1 a tw
2 b jp
3 c us
4 d jp
5 e us
6 f tw
7 g jp
如果select * from t order by country
id name country
2 b jp
4 d jp
7 g jp
1 a tw
6 f tw
5 e us
3 c us
如果我想以 tw->us->jp順序來的話
select * from t
order by (case country
when 'tw' then 1
when 'us' then 2
when 'jp' then 3
end)
結果就是
1 a tw
6 f tw
5 e us
3 c us
4 d jp
2 b jp
7 g jp
接下來如果在分組中如何排序呢
select area_code,substr(order_time,0,8),count(*) from wangbh_temp
group by area_code,substr(order_time,0,8)
order by substr(order_time,0,8),(
case area_code when 'qz' then 1
when 'hz' then 2
when 'hu' then 3
when 'jx' then 4
when 'nb' then 5
when 'sx' then 6
when 'tz' then 7
when 'wz' then 8
when 'ls' then 9
when 'jh' then 10
when 'zs' then 11
end)
area_code substr(order_time,0,8) count(*)
qz 20100901 3
hz 20100901 5
hu 20100901 4
jx 20100901 1
nb 20100901 11
sx 20100901 1
tz 20100901 6
wz 20100901 4
ls 20100901 1
jh 20100901 8
hz 20100902 3
jx 20100902 2
nb 20100902 5
tz 20100902 1
wz 20100902 7
ls 20100902 1
jh 20100902 2
以上查詢中先以area_code substr(order_time,0,8)進行分組,
然後以substr(order_time,0,8)預設公升序排序,
再以 'qz'->'hz'->'hu'-> 'jx'->'nb'->'sx'->'tz'->'wz'->'ls'->'jh'->'zs' 的順序排序
lintcode多關鍵字排序
給定 n 個學生的學號 從 1 到 n 編號 以及他們的考試成績,表示為 學號,考試成績 請將這些學生按考試成績降序排序,若考試成績相同,則按學號公升序排序。使用sort方法,先對item0排序,再對item1排序,優先順序越高的排序越後做 class solution param array th...
成績排序 多關鍵字
題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入描述 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出描述 按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。如果學生的成績相同,則按照學號的大小...
多關鍵字排序。c
多關鍵字排序 乙個長方形有長和寬,分別設為 a 和 b,現在想對一些長方形進行排序。有一種新的排序方法。如下 我們按照兩個長方形的a b值來對他們按降序排序,如果有重複,按照b值公升序排序,如果還有重複,按照輸入的順序排序。也就是說,是多關鍵字排序 第1關鍵字,a b,降序 第2關鍵字,b,公升序 ...