一条sql语句排序问题?

numberljf 2008-05-21 08:50:27
如何能对一个表中,三个时间字段中最新时间进行排序(添加时间,修改时间,删除时间)
...全文
81 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
numberljf 2008-05-23
  • 打赏
  • 举报
回复

SELECT * FROM
(
SELECT Table1.*,
LatestTime =
CASE
WHEN addtime > updatatime AND addtime > deltime THEN addtime
WHEN updatatime > addtime AND updatatime > deltime THEN updatatime
ELSE deltime
END
FROM Table1
) AS a
ORDER BY a.LatestTime DESC

这个可以,但是有两值为空,或者一个值为空怎么办?
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 possible_Y 的回复:]
SELECT * FROM
(
SELECT Table1.*,
LatestTime =
CASE
WHEN addtime > updatatime AND addtime > deltime THEN addtime
WHEN updatatime > addtime AND updatatime > deltime THEN updatatime
ELSE deltime
END
FROM Table1
) AS a
ORDER BY a.LatestTime DESC
[/Quote]
顶一个,这个不错!!忘了可以用case
possible_Y 2008-05-23
  • 打赏
  • 举报
回复
SELECT * FROM
(
SELECT Table1.*,
LatestTime =
CASE
WHEN addtime > updatatime AND addtime > deltime THEN addtime
WHEN updatatime > addtime AND updatatime > deltime THEN updatatime
ELSE deltime
END
FROM Table1
) AS a
ORDER BY a.LatestTime DESC
  • 打赏
  • 举报
回复
空值不用管!!空值就是比有有值的小
SSXYC 2008-05-22
  • 打赏
  • 举报
回复
哦,空值用ISNULL转换成一个比较小的时间就行
SSXYC 2008-05-22
  • 打赏
  • 举报
回复
select a.*
from
(select seq,case when datediff(addtime,updatatime ) >=0 and datediff(deltime ,updatatime) >= 0 then updatatime
when datediff(updatatime,addtime) >= 0 and datediff(deltime,addtime) >= 0 then addtime
else deltime
AS maxtime
from tablename
) v
inner join
tablename a
on v.seq = a.seq
order by v.maxtime
seq 就是你那个1,2,3流水号什么的
jhwcd 2008-05-22
  • 打赏
  • 举报
回复
实现起来是比较麻烦。
  • 打赏
  • 举报
回复
你这个是3个字段中的最新时间,一个SQL语句是没办法完成的
numberljf 2008-05-22
  • 打赏
  • 举报
回复
首先每条记录找出最新的时间,然后再按照最新的时间整个表的记录来排序,SQL语句应该怎样写?
numberljf 2008-05-22
  • 打赏
  • 举报
回复
SQL数据库来的
  • 打赏
  • 举报
回复
但是稍微改下数据就不对了!
  • 打赏
  • 举报
回复
select * from c order by addtime desc,updatatime desc,deltime desc

针对于你这个数据,使用这个可以得到你想要的结果1,3,2
  • 打赏
  • 举报
回复
一个SQL基本实现不了
rliensan 2008-05-22
  • 打赏
  • 举报
回复

一, select max(addtime),max(updatatime),max(deltime) from 表.
二,或建一个临时报,把对应的最新资料更新到临时表,然再查.
不知这样可不可以帮到你.
liuyann 2008-05-21
  • 打赏
  • 举报
回复

什么数据库? 我实在猜不出你用的什么数据库。

==== ====

numberljf 2008-05-21
  • 打赏
  • 举报
回复
datatime数据类型

addtime updatatime deltime
1 2008-2-16 23:45:082 2008-2-18 23:45:082 2008-2-16 23:45:082
2 2008-2-16 23:45:082 <null> <null> 3 2008-2-16 23:45:082 <null> 2008-2-17 23:45:082

我想要最终于效果是 1 3 2
liuyann 2008-05-21
  • 打赏
  • 举报
回复

什么数据库?有些数据库是带有内建的函数可以的。没有的则自己写个函数。

==== ====

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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