Oracle 自定義排序

2021-08-29 09:51:49 字數 992 閱讀 9687

create table table1(

id_ integer primary key, --主鍵

name_ varchar2(20), --名稱

status integer, --狀態(5 在用,6 廢除,7 凍結)

index_ integer --排序字段

)

插入資料

insert into table1 values(1,'王麻子1',5,1);

insert into table1 values(2,'王麻子2',5,2);

insert into table1 values(3,'王麻子3',5,3);

insert into table1 values(4,'王麻子4',5,4);

insert into table1 values(5,'王麻子5',6,5);

insert into table1 values(6,'王麻子6',7,6);

insert into table1 values(7,'王麻子7',7,7);

commit;

表資料如下圖所示:

現在需要將status為6和7的資料排在最前面顯示出來,就需要用到case when了

select * from table1 order by case 

when status = 6 then 1

when status = 7 then 2

end , index_;

最後查詢結果如下

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...

ORACLE的自定義排序

普通排序sql是這樣的 select name from table order by name 這時候我們需要按照自己定義的name的排序規則進行排序,如按照某個字典array進行排序,就需要用個臨時表來完成 如建立表 c sort t create table c sort t sort id ...