如何对一个记录集进行多次排序

伟大de虫子 2004-09-11 01:13:30

先说明不是按这种方式:order by id,[datatime],name....

情况是这样的,我按照自己的想法,已经将想要取得的数据从数据库中取出来了,
但与我所想的有一点点不同,取出来的数据的顺序与我想要的是刚好相反,
例如:

[id] [name]
10 jacky
11 lily
13 arbiter
14 ken
18 ....


上面就是我要的记录和希望的顺序

但结果我取出来的记录顺序如下:

[id] [name]
18 ....
14 ken
13 arbiter
11 lily
10 jacky


也即是说刚好相反。请问如何解决?原SQL代码如下:


SQLstr = "Select Top "&DefRecordNum&" * From MyTable Where ID In (Select Top "&tmpSum&" ID From MyTable Group by ID Having ID>"&IdEnd&" Order By ID) Order By ID DESC"

试了很久,实在是没有办法了,还望相助。
...全文
165 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-09-11
  • 打赏
  • 举报
回复
--我想,你会不会是这个意思:

SQLstr = "select * from(Select Top "&DefRecordNum&" * From MyTable Where ID In (Select Top "&tmpSum&" ID From MyTable Group by ID Having ID>"&IdEnd&" Order By ID) Order By ID DESC)a order by id"
zjcxc 元老 2004-09-11
  • 打赏
  • 举报
回复
举数据实例说明问题吧.
lxysjl 2004-09-11
  • 打赏
  • 举报
回复
不懂意思,如果按照上面所说.去掉desc应该就是对的
cxingh 2004-09-11
  • 打赏
  • 举报
回复
SQLstr = "Select Top "&DefRecordNum&" * From MyTable Where ID In (Select Top "&tmpSum&" ID From MyTable Group by ID Having ID>"&IdEnd&" )
Order By ID "
yesterday2000 2004-09-11
  • 打赏
  • 举报
回复
你用order by id desc
那ID肯定是按降序排的
怎么会得到你要的结果呢/
yesterday2000 2004-09-11
  • 打赏
  • 举报
回复
楼主能不能把表结构和数据贴出来?
伟大de虫子 2004-09-11
  • 打赏
  • 举报
回复

楼上的答案是错的。
为什么错比较复杂,我也一时说不清楚,主要是因为里面的Top "&DefRecordNum&" 和 Top "&tmpSum&" 造成的。

DefRecordNum 和 tmpSum都是一个可变的整数,当将最后的order by id desc中的desc去掉后,结果就不是我想要的了。
伟大de虫子 2004-09-11
  • 打赏
  • 举报
回复
zjcxc(邹建) 的答案是对的,谢谢。

可惜效率低了将近一倍,唉。。。。真是鱼与熊掌不可兼得~~ 给分
yesterday2000 2004-09-11
  • 打赏
  • 举报
回复
SQLstr = "Select Top "&DefRecordNum&" * From MyTable Where ID In (Select Top "&tmpSum&" ID From MyTable Group by ID Having ID>"&IdEnd&" Order By ID) Order By ID "

34,838

社区成员

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

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