Trafodion 自定義排序

2021-07-31 21:15:30 字數 1208 閱讀 9707

大家都知道在sql語句中,我們一般使用order by 來排序sql輸出的結果,可以使用asc(預設)指定公升序排列,desc指定降序排列,比如

>>select a,b from test order

by a asc, b asc;

a b

----------- ----------

1 a

2 b

2 c

3 d

3 e

3 f

--- 6 row(s) selected.

>>select a,b from test order

by a desc, b desc;

a b

----------- ----------

3 f

3 e

3 d

2 c

2 b

1 a

--- 6 row(s) selected.

假如我們希望排序並不按照字母順序或者數字大小順序來排序,而是根據自定義的規則排序結果應該怎麼實現,可以結合decode函式或case when實現,關於decode的用法請參考: , decode與case when可以實現相同的功能。

舉例如下,結果集有』play』,』collect』及』order』,預設情況下使用order by的結果應該是』collect』,』order』,』play』,但如果希望按照』play』,』collect』,』order』排序應該像下面這樣實現,

>>select t.a,decode(t.a,'play',1,'collect',2,'order',3,4) as rownum

from (

select 'play'asa

from dual

union all

select 'collect'asa

from dual

union all

select 'order'asa

from dual) as t order by rownum;+>+>+>+>+>+>

a rownum

------- ------

play 1

collect 2

order 3

DataGridView自定義排序

net自帶datagridview排序貌似最終都是用datagridview.sort 發現當是用排序後,datagridview將把排序前的行樣式等重置,仔細測試後覺得貌似是排序時datagridview重新繫結了資料來源,具體不得而知.實在沒有辦法破解,我也不想重新寫比較來排序,用了最土的辦法,...

QTableWidget 自定義排序

qtablewidget功能強大,可以在每個格仔裡新增自己的wiget部件。如果想對這些自己新增的widget進行排序有兩種方法。一種是直接設定每個格仔對應的qtablewidgetitem的值,因為qtablewidget預設是據qtablewidgetitem來排序,呼叫的比較函式是 bool ...

python list 自定義排序

看到的乙個知識點,稍加記錄 a 希望將上述的list排序,按照每條記錄中的 score 排序。如果 score 欄位的值相等,則按照 first 的值排序。如果 first 依舊相等,則按照 second 排序。如果 second 相等,則按照 third 欄位的值來排序。a.sort.doc l....