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');

浙公网安备 33010602011771号