Table:class
 
id          xueyuan
1            信息
2            信息
3            化材
4            化材
5            经贸现在我想通过SQL得到以下结果
 
xueyuan
信息
化材
经贸就是把原来class表中的不重复的学院找出来,但是必须根据id号升序来我自己原来写了这样: select distinct xueyuan
                     from class
但是得出的结果是:
xueyuan
化材
经贸
信息好像distinct会根据首个字母的顺序排的。
请教达人啊,谢谢!

解决方案 »

  1.   

    id          xueyuan
    1            信息
    2            化材
    3            信息
    4            化材
    5            经贸
    如果是这样的表信息,显示应怎么样显示?

    xueyuan
    信息
    化材
    经贸
    还是
    xueyuan
    化材
    信息
    经贸
      

  2.   

    select distinct xueyuan, class.id
                         from class order by class.id
      

  3.   

    select xueyue from(
    select 
    1 as id,'信息' as xueyue union select
    2 ,'信息' union select
    3 ,'化材' union select
    4 ,'化材' union select
    5 ,'经贸')a
    group by xueyue
    order by min(id)
      

  4.   

    select distinct xueyuan, class.id
    from class order by class.id
    ZHE YANG JIU KE YI LE.
      

  5.   

    SELECT DISTINCT  ID,XUEYUAN
    FROM CLASS
    GROUP BY XUEYUAN AND ORDER BY ID
      

  6.   

    select distinct xueyuan
    from class order by id
      

  7.   

    select xueyuan, min(id) from class group by xueyuan order by min(id)
      

  8.   

    回zlb_chen(每天爱你多一点) :
    id          xueyuan
    1            信息
    2            化材
    3            信息
    4            化材
    5            经贸
    如果是这样的表信息,显示还是
    xueyuan
    化材
    经贸
    信息
    而不是你所列举的两种
      

  9.   

    回naner_china(naner): 在我原来的语句上加order by id asc 是错误的,因为用了distinct就一定要把order by后面的选项也加到select里面去,但是如果加进id的话,那么结果会是全部的数据。
      

  10.   

    回lizheng9564(Y*_*Y):你这样写就是我上面说的情况,结果会是id          xueyuan
    1            信息
    2            信息
    3            化材
    4            化材
    5            经贸因为distinct把后面的class.id也包含进去了
      

  11.   

    select xueyuan from class group by xueyuan order by min(id)