Order SQL data ORDER as in IN clause

example:


select * from t_cu where cno IN (
220,
120,
900,
350,
99,
1,
34
);
 



I would like to display the data in the same order as 

220,
120,
900,
350,
99,
1,
34

 

=========================A

select * from t_cu where cno IN (
220,
120,
900,
350,
99,
1,
34
)
order by decode(cno,
220, 1,
120, 2,
900, 3,
350, 4,
99,  5,
1,   6,
34,  7,
8);

=========================B

SQL> ed
Wrote file afiedt.buf
 
  1  with req as (select '7844,7698,7782,7499' as en from dual)
  2      ,ord as (select REGEXP_SUBSTR (en, '[^,]+', 1, level) en, rownum rn
  3               from req
  4               connect by level <= length(regexp_replace(en,'[^,]*'))+1)
  5  --
  6  select emp.*
  7  from emp join ord on (emp.empno = ord.en)
  8* order by ord.rn
SQL> / 
 
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
 

=========================C

SQL>  with t as (select t.*, rownum r
             from table (sys.odcinumberlist (7788,
                                             7934,
                                             7782,
                                             7902,
                                             7369,
                                             7499,
                                             7566)) t)
  select empno, ename
    from emp e, t
   where e.empno = column_value
order by r
/ 
     EMPNO ENAME     
---------- ----------
      7788 SCOTT     
      7934 MILLER    
      7782 CLARK     
      7902 FORD      
      7369 SMITH     
      7499 ALLEN     
      7566 JONES     
 
7 rows selected.

=========================

猜你喜欢

转载自kavinhub.iteye.com/blog/1788816