应该是这样: select date1,date2 from tabName order by nvl(date1,to_date('1800-01-01')) desc,date2 desc;其中1800-01-01可以是任何一个小于date1中的任意一个值的日期,我想这个日期是设小一点就行了,要不就用subquery求出来也可以,就是这样: select date1,date2 from tabName order by nvl(date1,(select min(date1) from tabName)-1) desc,date2 desc;
啊,楼主要求的这样就可以了: order by date1 desc,date2 desc 一时大意
order by date1 desc,date2 desc 这样不行啊
为什么不行?null排在前面了?
select date1,date2 from tab_name where date1 is not null order by date1 desc union select date1,date2 from tab_name where date1 is null order by date2 desc
order by date1 desc,date2 desc 这样不行,date1为null时会排在前面。对date1做一下处理:order by decode(date1,null,'1'||date2,'2'||date1) desc
select * from tablename a where a.date1字段名 is null order by a.date1字段名 union select * from tablename b where b.date1字段名 is not null order by b.date2字段名
hevin(刚出道,CODING) 的方法, dinya2003(OK) 的方法,都可以。
select date1,date2 from tabName order by decode(date1,null,'1'||date2,'2'||date1) desc
select date1,date2 from tabName
order by nvl(date1,to_date('1800-01-01')) desc,date2 desc;其中1800-01-01可以是任何一个小于date1中的任意一个值的日期,我想这个日期是设小一点就行了,要不就用subquery求出来也可以,就是这样:
select date1,date2 from tabName
order by nvl(date1,(select min(date1) from tabName)-1) desc,date2 desc;
order by date1 desc,date2 desc 一时大意
union
select date1,date2 from tab_name where date1 is null order by date2 desc
union
select * from tablename b where b.date1字段名 is not null order by b.date2字段名
from tabName
order by decode(date1,null,'1'||date2,'2'||date1) desc