ORACLE的自定義排序

2022-08-05 14:12:14 字數 557 閱讀 2520

普通排序sql是這樣的:select name from table order by name;

這時候我們需要按照自己定義的name的排序規則進行排序,如按照某個字典array進行排序,就需要用個臨時表來完成

如建立表:c_sort_t

create table c_sort_t

(sort_id   number(10),

sort_name varchar2(20),

sort_seq  number(10)

)然後把原有的sql聯合排序表進行查詢,然後用sort_seq排序就可以了。

如果是sort array是不固定,而是在排序前傳入sql?該怎麼辦?

如果排序的array不大的話,可以用decode來達到要求,如下:

select name from table

排序:select name,decode(name,"array[0]",1,"array[1]",2,....,9999) seq from table order by seq

如果超大的排序。。。。感覺用很難用一個sql排吧,沒有好辦法

ORACLE自定義順序排序

oracle可以藉助decode函式,自定義順序排序 select from select nick as item from dual u...

oracle的中文排序問題

mysql中文排序有convert name using gbk 這樣的函式,於是研究了一下oracle中文排序 使用拼音排序 sql se...

oracle中的分組排序

1 首先,需要建表。 表名 coursr 失誤,表名寫錯了 2 我們需要對每個課程進行排序。 3 知識準備 分組排序函式有3種 4 執行 select t row number over partition by t coursename order by t coursescore desc co...