ORACLE的自定義排序

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

普通排序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 自定義排序

create table table1 id integer primary key,主鍵 name varchar2 20 名稱 status integer,狀態 5 在用,6 廢除,7 凍結 index integer 排序字段 插入資料 insert into table1 values 1...

ORACLE自定義順序排序

oracle可以借助decode函式,自定義順序排序 select from select nick as item from dual union allselect viki as item from dual union allselect glen as item from dual uni...

ORACLE自定義順序排序

oracle可以借助decode函式,自定義順序排序 select from select nick as item from dual union allselect viki as item from dual union allselect glen as item from dual uni...