请教:查询表中每个类别的第一条记录的sql。内详
请教一段SQL语句: 
 Table1有多个列,其中两列是:class1,class2 
    class1   class2   col3,col4   ..... 
       a                  a1               *            * 
       a                  a2 
       a                  a3 
       b                  b1 
       b                  b2 
 我只想选出每个Class1中的第一条记录,该如何写sql 
 结果应该是: 
       class1   class2   col3   col4   ..... 
          a                     a1            *               * 
          b                     b1            *               * 
 多谢大家。
------解决方案--------------------select t.* from table1 t where not exists(select 1 from table1 where class1=t.class1 and class2 <t.class2)   
 select t.* from table1 t where t.class2=(select min(class2) from table1 where class1=t.class1)
------解决方案--------------------select a.* from tb a, 
 (select class1,min(class2) as class2 from tb group by class1) b 
 where a.class1 = b.class1 and a.class2 = b.class2
------解决方案--------------------table1 
  class1 class2 col3,col4 ..... 
   a      a1     *    * 
   a      a2 
   a      a3 
   b      b1 
   b      b2 
 select class1,min(class2)class2,col3= '* ',col4= '* 'from tbale1 group by class1 
 ---或 
 select class1,(select top 1 class2 from table1 b where b.class1=a.class1)class2,col3= '* ',col4= '* 'from tbale1 a group by class1
------解决方案--------------------楼主提的问题有语病,不清   
 我只想选出 --------每个Class1中的第一条记录------  ,该如何写sql 
 结果应该是: 
 假如表是这样 
  class1 class2 col3,col4 ..... 
   a      a5     *    * 
   a      a2 
   a      a3 
   b      b1 
   b      b2 
 那么根据楼主提的问题所要结果应是这样 
  class1 class2 col3,col4 ..... 
   a      a5     *    * 
   b      b1 
 而不是 
  class1 class2 col3,col4 ..... 
   a      a1     *    * 
   b      b1 
 对吧   
 上面两位朋友都做成最后一解答案了   
------解决方案--------------------2005的: 
 select class1,class2,col3,col4, row_number() over(partition by class1 order by class1 desc) rownum  from tabl2 where rownum=1