假设有一张数据库表 : T_USER
字段如下 id ---------- number
name --------- varchar(20)
id name
101 张三
102 李四
103 王五
现要求记录顺序为指定的 103 1001 1002 SQL语句如下
第一种 : select id,name from (select case id when 1003 then 1 when 1001 then 2 when 1002 then 3 end as seq,id,name from t_user) order by seq;
第二种 : select id,name from t_user order by case id when 1003 then 1 when 1001 then 2 when 1002 then 3 end;
以上两个写法是等效的,在ORACLE 10G数据库中通过;
核心思想为在排序时使用那种指定的序列进行排序.