• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

问一个简单排序

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
...全文
72 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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个了。。
怎么回事?
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-07 08:36
社区公告
暂无公告