问一个简单排序

millfox 2008-04-07 08:36:04
假如有员工表如下:(EmpID员工ID,EmpName员工姓名,DeptID部门ID)
EmpID EmpName DeptID
1 员工A 5
2 员工B 5
3 员工C 7
4 员工D 7
5 员工E 9
6 员工F 5
7 员工G 7
8 员工H 9
9 员工I 3

数据库里的记录,部门ID可能是连续的。

现在想根据DeptID交错排序,就是连着的两个数据DeptID不能相同。(交错到了最后,如果还剩下相同的就全部放在结尾。)

EmpID EmpName DeptID
1 员工A 5
2 员工B 7
3 员工C 3
4 员工D 9
5 员工E 7
6 员工F 5
7 员工G 3
8 员工H 9
9 员工I 9
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
millfox 2008-04-08
  • 打赏
  • 举报
回复
对,就是要楼上这个效果,太谢谢了。
上面我只是简单的说了一下需求,可能没描述清楚
pt1314917 2008-04-07
  • 打赏
  • 举报
回复

declare @t table(empid int,empname varchar(10),deptid int)
insert into @t select 1,'员工A',5
insert into @t select 2,'员工B',5
insert into @t select 3,'员工C',7
insert into @t select 4,'员工D',7
insert into @t select 5,'员工E',9
insert into @t select 6,'员工F',5
insert into @t select 7,'员工G',7
insert into @t select 8,'员工H',9
insert into @t select 9,'员工I',3

select px=(select count(1) from @t where deptid=a.deptid and empid<=a.empid),* from @t a
order by px,deptid
viva369 2008-04-07
  • 打赏
  • 举报
回复
lz把需求说清楚,不然怎么帮你啊~~~
xiaomeixiang 2008-04-07
  • 打赏
  • 举报
回复
看不懂。。
pt1314917 2008-04-07
  • 打赏
  • 举报
回复
deptid变了。为什么empname的顺序没变呢?而且原数据中deptid有3个5。排序后只有2个了。。
怎么回事?

34,591

社区成员

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

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