Loading

统计sql语句改造 (当sign_date不为空时,用sign_date升序排列,当sign_date为空时, 用issu_date升序排列)

select * from (
select '2011-09-14' as sign_date,'2011-09-01' as issu_date
union
select '2011-09-10' as sign_date,'2011-09-05' as issu_date
union
select '2011-09-12' as sign_date,'2011-09-02' as issu_date
union
select '' as sign_date,'2011-09-04' as issu_date
union
select '' as sign_date,'2011-09-05' as issu_date
) a 
order by sign_date ,issu_date

 结果:

结果出来后,发现第一列数据总是空排在前面, 所以在原有的基础上构造NULL让其参与排序。

select case when sign_date='' then'NULL' else sign_date end sign_date,issu_date from (
select '2011-09-14' as sign_date,'2011-09-01' as issu_date
union
select '2011-09-10' as sign_date,'2011-09-05' as issu_date
union
select '2011-09-12' as sign_date,'2011-09-02' as issu_date
union
select '' as sign_date,'2011-09-04' as issu_date
union
select '' as sign_date,'2011-09-05' as issu_date
) a 
order by sign_date ,issu_date

结果:

posted @ 2011-09-14 17:28  歪头儿在北京  阅读(897)  评论(0)    收藏  举报