SQL语句:
select distinct  mc from tkh
order by 
(select CASE mc  WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end) 
错误提示:如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。说明:我查询出来的有重复项,我想先去掉重复项,然后在按以指定的顺序排列,请问该怎么修改呢???
高手请解答,谢谢

解决方案 »

  1.   

    select distinct mc from tkh
    order by  
    (CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end) 
      

  2.   

    select * from
    (select distinct mc from tkh) t
    order by (select CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end) 
      

  3.   

    --更正
    select  mc 
    from tkh
    group by mc
    order by  
    (CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end) 
      

  4.   

    select  mc 
    from tkh
    group by mc
    order by  
    (CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end) 
      

  5.   

    SELECT  *
    FROM    ( SELECT DISTINCT
                        mc
              FROM      tkh
            ) T
    ORDER BY ( CASE mc
                 WHEN '董事长' THEN 1
                 WHEN '副董' THEN 2
                 WHEN '经理' THEN 3
                 WHEN '副经理' THEN 4
               END )  
    ???
    最好来点儿数据和结果。
      

  6.   


    谢了,我再问下,就是有多个左连接的话该怎么写了??
    比如:
    select distinct  tb1.num,tb2.name,tb2.age,tb3.mc
    from tb1
    left join tb2 on tb1.num=tb2.num
    left join tb3 on tb1.num=tb3.num
    order by (
    CASE mc
                 WHEN '董事长' THEN 1
                 WHEN '副董' THEN 2
           ……)