Oracle实现------如果某字段存在某字符串,则置顶,否则其他数据按时间排序

Oracle实现------如果某字段存在某字符串,则置顶,否则其他数据按时间排序

最近在做公司的一个项目,用的oracle数据库,也是不太熟悉,这几天就接到了一个新需求。
要求
----如果在“descr”字段中,存在“已更新租赁到期时间”,则将其置顶,其余数据按时间排序
最终得出结果如下:

 select * from emp order by 
 case when descr like "已更新租赁到期时间" then 1
 else 2
 end,
 create_time

算了,就以Oracle数据库自带的emp表为例子,我们看看如下示例:

select * from emp
order by case
   when ENAME
	 like '%IN%' then 1
	 else 2
   end, 
	 HIREDATE desc;

以上sql的意思就是———在emp表中根据ENAME字段中包含“IN”字符串的数据进行排序,排序的优先级为1,否则优先级为2,最后还要按照“HIREDATE”排序,结果如下:
在这里插入图片描述
可以看到,如图中我标识的,优先会找到带“IN”字符串的数据,然后这些带”IN“字符串的还会根据时间排序,而其他不带“IN”字符串的数据则是直接根据时间排序

以上就是我的感悟总结了,又学到了”新姿势“,美滋滋

------我是“道祖且长”,一个在职场上苟且偷生的java程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三七有脾气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值