Oracle 根据条件in中值的顺序输出结果集

当我们用条件in查询数据时,我们希望输出的结果集是按照条件in里面的值的顺序展示的时,比如:

--有如下表:
SQL> select * from ordertest t;
ID    NAME
----- ----------------
a     甲
b     乙
c     丙
d     丁

--当我们 t.id in ('a','c','d','b') 时,我们希望输出的结果是按照 a、c、d、b排序的,但实际结果是:
SQL> select * from ordertest t where t.id in ('a','c','d','b');
ID    NAME
----- ----------------
a     甲
b     乙
c     丙
d     丁

--为此可以使用order by decode,达到我们目的,如下:
SQL> select * from ordertest t where t.id in ('a','c','d','b') order by decode(t.id,'a',1,'c',2,'d',3,'b',4);
ID    NAME
----- ----------------
a     甲
c     丙
d     丁
b     乙

2015年11月5日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值