日期:2014-05-18  浏览次数:20565 次

高分求一条排序SQL
表结构  

ID   Class   Content   Content2

1       A             aa         bb
2       A             cc         dd
3       A             ee         ff
4       b             gg         hh
5       b             ii         jj
6       b             kk         ll
7       c             mm         nn
8       c             oo         pp
9       c             qq         rr
10     d             ss         tt
11     d             uu         vv
12     d             ww         xx

求一条sql   要求按Class组循环每取最新条一条记录重新排列,排序后结果以下,
数据较多,望高手写条高效的sql,高分酬谢。

12     d             ww         xx
9       c             qq         rr
6       b             kk         ll
3       A             ee         ff

11     d             uu         vv
8       c             oo         pp
5       b             ii         jj
2       A             cc         dd

10     d             ss         tt
7       c             mm         nn
4       b             gg         hh
1       A             aa         bb

------解决方案--------------------
select ID Class Content Content2, 求余(ID,3) as new_id from table_a order by new_id ,id desc
------解决方案--------------------
求余函数不记得SQL Server是否有,如果没有可以自己写一个
------解决方案--------------------

select id,Class, Content ,Content2 from table order by ((id-1)%3) desc,id desc
------解决方案--------------------
if object_id( 'pubs..tb ') is not null
drop table tb
go

create table tb(ID int,Class varchar(10),Content varchar(10),Content2 varchar(10))
insert into tb(ID,Class,Content,Content2) values(1 , 'A ', 'aa ', 'bb ')
insert into tb(ID,Class,Content,Content2) values(2 , 'A ', 'cc ', 'dd ')
insert into tb(ID,Class,Content,Content2) values(3 , 'A ', &