表 id   subjectid subjectName groupid
   1       1         语文       1
   2       2         数学       3
   4       3         化学       2
   5       4         英语       2
   6       5         政治       1
   7       8         历史       3
   9       9         地理       2
  11       10        物理       3
输出后 让groupid 不连续且有规律的显示。
   1       1         语文       1
   4       3         化学       2
   2       2         数学       3
   6       5         政治       1
   5       4         英语       2
   7       8         历史       3
   9       9         地理       2
   11       10        物理      3
结果 就是让groupid 不连续输出相同的值且正序排序sql

解决方案 »

  1.   

    假设你的表叫testselect * from test a
    order by (select count(*) from test where groupid=a.groupid and id<a.id),groupid/*
    id          subjectid   subjectName         groupid     
    ----------- ----------- ------------------- ----------- 
    1           1           语文                  1
    4           3           化学                  2
    2           2           数学                  3
    6           5           政治                  1
    5           4           英语                  2
    7           8           历史                  3
    9           9           地理                  2
    11          10          物理                  3(所影响的行数为 8 行)
    */
      

  2.   

    select * from (select *,row=row_number()over(partition by groupid order by id) from tb)t order by row,groupid