--这样试试 select * from X order by A desc nulls last, B desc nulls last, C desc nulls last, D desc nulls last, E desc nulls last, F desc nulls last, G desc nulls last, H desc nulls last, I desc nulls last, J desc nulls last
order by decode(col1,null,0,1)+...+decode(col10,null,0,1)
现在就当这个表为X,有A,B,C,D,E,F,G,H,I,J类型为date的10列,字段都允许为空值,再细点,我确定给出10跳数据
2011-2-28,2011-3-1,2011-3-2,2011-3-3,2011-3-4,2011-3-5,2011-3-6,2011-3-7 2011-3-8,2011-3-9
2011-2-27,2011-2-28,2011-3-1,2011-3-2,2011-3-3,2011-3-4,2011-3-5,2011-3-6,2011-3-7
2011-2-26,2011-2-27,2011-2-28,2011-3-1,2011-3-2,2011-3-3,2011-3-4,2011-3-5
2011-2-25,2011-2-26,2011-2-27,2011-2-28,2011-3-1,2011-3-2,2011-3-3,2011-3-3
2011-2-24,2011-2-25,2011-2-26,2011-2-27,2011-2-28,2011-3-1
2011-2-23,2011-2-24,2011-2-25,2011-2-26,2011-2-27,2011-2-27
2011-2-22,2011-2-23,2011-2-24,2011-2-25
2011-2-21,2011-2-22,2011-2-23
2011-2-20,2011-2-21
2011-2-19
按照每行数据中列不为空最少的字段从大到小,不为空数目相同的行再按照没列时间最近的从大到小
select *
from X
order by A desc nulls last,
B desc nulls last,
C desc nulls last,
D desc nulls last,
E desc nulls last,
F desc nulls last,
G desc nulls last,
H desc nulls last,
I desc nulls last,
J desc nulls last