现在有一个表:
name     id
第一     1
第一     2
第一     3
第二     4
第三     5
 现在想得到:
name
第一
第二
第三要升序排列的,该怎么办啊~直接用select DISTINCT name from table order by name asc出现:name
第二
第三
第一

解决方案 »

  1.   

    select name from table group by name order by id desc
      

  2.   

    create table T(name varchar(10), id int)
    insert T select '第一',     1
    union all select '第一',     2
    union all select '第一',     3
    union all select '第二',     4
    union all select '第三',     5select name
    from T 
    group by name
    order by min(id)--result
    name       
    ---------- 
    第一
    第二
    第三(3 row(s) affected)
      

  3.   

    似乎解决了T_T~
    select name from stock_district group by_name order by min(id)
      

  4.   


    向 marco08(天道酬勤) 學習
      

  5.   

    建表:
    IF EXISTS(SELECT *FROM SYSOBJECTS WHERE NAME='temptab'AND XTYPE='U')
    DROP TABLE temptab
    create table temptab
    (
    pname varchar(20),
    pid int 
    )插入数据:
    insert into temptab values('第一',1)
    insert into temptab values('第一',2)
    insert into temptab values('第一',3)
    insert into temptab values('第三',4)
    insert into temptab values('第二',5)要求的查询
    select pname from 
    (select pname,
    case pname 
         when '第一' then 1
         when '第二' then 2
         when '第三' then 3
    end Porder
     from temptab group by  pname)tt
    order by Porder该方法使用CASE语句,针对你要求的排序方式自己定义顺序,按定义的排序字段(Porder)来排序。