Oracle根据查询条件 in 里的参数顺序排序

1、表内容

2、普通查询结果

  select * from Test t where t.name in ('33','22','44','55');

3、按in排序的结果

     select * from Test t where t.name in ('33','22','44','55') order by instr('33224455',t.name) ;

 补充表创建语句

CREATE TABLE TEST
(
  LIE1 VARCHAR2(20 BYTE)
, LIE2 VARCHAR2(20 BYTE)
, NAME VARCHAR2(20 BYTE)
, AGE VARCHAR2(5 BYTE)
) ;

Insert into TEST (LIE1,LIE2,NAME,AGE) values ('2003','2001','11','1');
Insert into TEST (LIE1,LIE2,NAME,AGE) values ('2004','2003','22','3');
Insert into TEST (LIE1,LIE2,NAME,AGE) values ('2005','2004','33','2');
Insert into TEST (LIE1,LIE2,NAME,AGE) values ('2006','2000','44','5');
Insert into TEST (LIE1,LIE2,NAME,AGE) values ('2007','2003','55','4');
Insert into TEST (LIE1,LIE2,NAME,AGE) values ('2008','2003','66','5');

posted @ 2017-12-12 15:53  周小哥  阅读(2006)  评论(0)    收藏  举报