一个关于时间排序的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!

qiudong_5210 2011-04-28 05:12:13
数据库中有一列时间列,时间列可以为空,现在有个需求是按照时间排序,安装时间到序排列没有问题,可是怎么按照下列的规则排序啊?
按时间ASC排序,要求如果没有时间就跳过数据,显示的是有时间的并且是按照时间ASC排序的数据,没有时间的数据排在有时间的后面
比如:
Id ,CreateDate
1 2011-02-03 00:00:00
2 2010-03-05 00:00:00
3 NULL
4 2011-04-25 00:00:00
5 NULL
排序出的结果应该是
2,1,4,5,3,或2,1,4,3,5
后面时间为空的就不要管他的顺序了,有其他的条件会约束的
...全文
50 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiudong_5210 2011-05-03
  • 打赏
  • 举报
回复
解决了,谢谢各位

select * from table1 as i
order by
isnull((select CreateDate from table1 where CreateDate>dateadd(day,-1,getDate()) and id
=i.id),'2999-12-31') ASC,isNull(CreateDate,'2999-12-31') ASC
qiudong_5210 2011-04-28
  • 打赏
  • 举报
回复
貌似是不能放在where条件里的,因为是一个分页的功能,只是按照这个排序
qiudong_5210 2011-04-28
  • 打赏
  • 举报
回复
再补充一下,还得大于当前时间的
Shawn 2011-04-28
  • 打赏
  • 举报
回复
SELECT * FROM tb
ORDER BY (CASE WHEN CreateDate IS NULL THEN 1 ELSE 0 END), CreateDate
rucypli 2011-04-28
  • 打赏
  • 举报
回复
select * from table1
order by isnull(CreateDate,'2999-1-1'),id
yuerjiajia 2011-04-28
  • 打赏
  • 举报
回复

select * from table1
order by isnull(CreateDate,'2999-1-1')

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧