可不可以這樣排序?

BILLSJONE 2004-05-08 11:23:18
數據表結構:
ID typeID
1  1
2  2
3  5
4  1
5  5

==========
從最后一條開始排序,如果ID=typeID就先接著排ID=typeID的,如上面記錄集排成這樣:
ID
5
3
4
1
2
====================
請教這樣排序的sql語句怎么實現?謝謝
...全文
19 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
BILLSJONE 2004-05-09
可以这样算的啊,不大懂,明天试一下看,先谢谢楼上
  • 打赏
  • 举报
回复
yuaf 2004-05-09
很简单,加一个计算列就好

SELECT id, typeID, (case id when typeID then 0 else 1 end) as oid
FROM mytable ORDER BY oid,id DESC
  • 打赏
  • 举报
回复
BILLSJONE 2004-05-09
不会直接一条sql语句行不行?
order by typeID, id不行吧
  • 打赏
  • 举报
回复
BILLSJONE 2004-05-08
更正:是因為3的typeID等于5的typeID
  • 打赏
  • 举报
回复
MH2o 2004-05-08
用SQL不知道怎么搞!
  • 打赏
  • 举报
回复
ffjing 2004-05-08
明白你的排序规律了
挺好玩的,我去研究一下。

  • 打赏
  • 举报
回复
BILLSJONE 2004-05-08
有規律的啊,用id的倒序來排,所以先排最后一條記錄5,緊接著排3,是因為3的typeID等于5的id(如果3的typeID不等于5的id的話是先排4的),就是這規律啊
  • 打赏
  • 举报
回复
zhuyaowei 2004-05-08
ID
5
3
4
1
2
你这个顺序有规律嘛?
实现不了
  • 打赏
  • 举报
回复
guanvee 2004-05-08
明白什么意思了,
可惜不会
帮顶!
  • 打赏
  • 举报
回复
libraworm 2004-05-08
order by typeID, id

类似这样,升序降序的条件自己加上去
  • 打赏
  • 举报
回复
zhuyuke 2004-05-08
使用存储过程,先创建一个临时表1,把表中的数据按降序排列插入到临时表1中,然后在创建一个临时表2,把临时表中的第1条记录插入到临时表2中同时在临时表1中删除该条记录;再在临时表1中找到和第一条记录typeID相等的记录插入到临时表2中,同时在临时表2中删除这些记录,依次类推,直到所有的数据都转移到表2中;这是后表2中的数据就是排序后的数据
  • 打赏
  • 举报
回复
BILLSJONE 2004-05-08
頂一下
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-08 11:23
社区公告
暂无公告