sql语句使用case对过期时间进行排序
2015-04-15 09:55
405 查看
今天解决了一个非常有意思的SQL查询语句的问题,在这里与大家分享一下,并记录以后用到
先了解一下SQL中case的简单用法
--简单CASE函数-CASE某个值WHEN去匹配-THEN符合匹配条件的值-ELSE其他情况-END结束
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--CASE搜索函数-CASE在此处只当开启这一系列的语句固定的结构-WHEN使用条件判断-THEN符合条件判断的值-ELSE其他情况-END结束
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
首先说说业务场景,在一个数据表中我们存贮了展示在页面的一系列活动,一开始的要求是按照置顶在前和创建时间倒叙排序,最后又添加了举办过的活动自动排到没有举办的后面,经过几番尝试都不行,在试着使用case when语句进行排序的时候成功了,非常高兴,记录下来
--原需求查询语句
select * from activity a
order by a.topflag desc,a.createtime desc
--新需求查询语句
select * from activity a
order by case when a.starttime < now() then 0 else 1 end desc, a.topflag desc,a.createtime desc
语句分析,当活动开始时间小于现在的时间(活动已开始)给0值否则(活动没开始)给1值,然后desc倒序排序,从1到0从活动没开始的到活动已经开始的排序,case when a.starttime < now() then 0 else 1 end这一长串在SQL真正order by的时候已经被替换为0或者1了所以实际上是order by (0|1) desc, a.topflag desc,a.createtime desc
先了解一下SQL中case的简单用法
--简单CASE函数-CASE某个值WHEN去匹配-THEN符合匹配条件的值-ELSE其他情况-END结束
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--CASE搜索函数-CASE在此处只当开启这一系列的语句固定的结构-WHEN使用条件判断-THEN符合条件判断的值-ELSE其他情况-END结束
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
首先说说业务场景,在一个数据表中我们存贮了展示在页面的一系列活动,一开始的要求是按照置顶在前和创建时间倒叙排序,最后又添加了举办过的活动自动排到没有举办的后面,经过几番尝试都不行,在试着使用case when语句进行排序的时候成功了,非常高兴,记录下来
--原需求查询语句
select * from activity a
order by a.topflag desc,a.createtime desc
--新需求查询语句
select * from activity a
order by case when a.starttime < now() then 0 else 1 end desc, a.topflag desc,a.createtime desc
语句分析,当活动开始时间小于现在的时间(活动已开始)给0值否则(活动没开始)给1值,然后desc倒序排序,从1到0从活动没开始的到活动已经开始的排序,case when a.starttime < now() then 0 else 1 end这一长串在SQL真正order by的时候已经被替换为0或者1了所以实际上是order by (0|1) desc, a.topflag desc,a.createtime desc
相关文章推荐
- Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
- Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
- [转]SQL语句使用Case进行简单判断
- 当执行SQL(ORACLE)时判段另一个字段的值去执行不同SQL,及 CASE WHEN 语句的使用
- 【Oracle】使用Oracle的v$sql视图查看近段时间执行的SQL语句
- sql 语句中使用条件判断case then else end
- sql语句中的case、while等使用
- ACCESS与MSSQL比较:SQL语句关于时间格式使用的注意点
- Python与开源GIS:在OGR中使用SQL语句进行查询
- 使用游标循环进行SQL更新插入的SQL语句
- 在Excel中使用SQL语句对多个数据表进行精确筛选
- 使用SQL语句对Oracle数据库数据进行拼接
- 使用SQL语句对Access数据库进行备份
- 使用SQL语句来进行分页处理
- 使用SQL语句来进行分页处理
- 在Delphi中使用SQL语句插入包括时间日期的记录
- Oracle使用SQL语句进行递归查询
- 使用SQL语句进行数据比对
- SQL SERVER2000教程-第五章 处理数据 第二十一节 使用CASE语句、SUM函数、AVG函数进行综合数据统计
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新