ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 增加一个伪日期字段,方便排序!

增加一个伪日期字段,方便排序!

原创 Linux操作系统 作者:mysqldbd 时间:2011-03-03 11:21:10 0 删除 编辑

period字段是2010M9,2010M11等类似的数据,如果按照period desc排序的话,那么就会乱了,所以想到了用一个伪列来做,这种伪列只适用于数据量不太大,比如不超过300W的情景,否则会很慢的。

 

select a.*
from(
    select sul.ind_cd, sul.rpt_cd, sul.period_type, sul.period, sul.up_time,
        case
            when length(sul.period)=4 and period_type='Y' then sul.period
            when length(sul.period)=4 and period_type='M' then concat(sul.period,'M00')
            when length(sul.period)=5 and period_type='M'then concat(sul.period,'00')       
            when length(sul.period)=6 and period_type='M'then concat(left(sul.period,5),'0',right(sul.period,1))
            when length(sul.period)=7 and period_type='M'then sul.period
            when length(sul.period)=1 and period_type='M'then concat(sul.period,'000M00')
            when length(sul.period)=2 and period_type='M'then concat(sul.period,'00M00')
            when length(sul.period)=3 and period_type='M'then concat(sul.period,'0M00')
            else sul.period end period_order
    from csf.sector_update_log sul
    where up_time > '' and up_time < ''
)a order by a.ind_cd asc,a.rpt_cd asc, a.period_order desc limit 1000000;

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25267658/viewspace-688315/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 清明近 何时归
请登录后发表评论 登录
全部评论

注册时间:2011-01-19

  • 博文量
    35
  • 访问量
    81364