mssql 排序问题?求助

toptree 2009-10-16 12:43:35

select * from todaytask where datediff("n",taskonlinetime,getdate())<15 order by rank asc,addtasktime desc

这里查询 15分钟在线的任务 通过rank和addtasktime排序

rank数值为0或者1

现在想改变查询方式

要求:

当rank等于0 时候 显示 15分钟在线的任务

当rank等于1 时候 显示 全部任务

rank才用asc排序。

用一条查询语句进行查询。不知道我说的大家明白不?呵呵。

求助,谢谢。
...全文
42 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2009-10-16
  • 打赏
  • 举报
回复
select 
case rank when 0 then (select * from todaytask where datediff("n",taskonlinetime,getdate()) <15 order by rank asc,addtasktime desc)
else (select * from todaytask order by rank asc,addtasktime desc)
from
todaytask
sgtzzc 2009-10-16
  • 打赏
  • 举报
回复
select * 
from todaytask
where
taskonlinetime>=case
when rank=0
then dateadd(mi,-15,getdate())
else taskonlinetime
end
order by
rank asc,
addtasktime desc
alan0128 2009-10-16
  • 打赏
  • 举报
回复
up
dawugui 2009-10-16
  • 打赏
  • 举报
回复
不会,帮顶.
zhengzeng 2009-10-16
  • 打赏
  • 举报
回复
困了,休息了
toptree 2009-10-16
  • 打赏
  • 举报
回复
mssql语言要用于asp网站里面的。希望可以不要分行。
--小F-- 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fredrickhu 的回复:]
SQL codeselectcase rankwhen0then (select*from todaytaskwheredatediff("n",taskonlinetime,getdate())<15orderby rankasc,addtasktimedesc)else (select*from todaytaskorderby rankasc,addtasktimedesc)from
t¡­
[/Quote]

哈哈 困了 乱写的 楼主别笑话

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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