去掉重复项distinct和以指定顺序排序order by 出现错误

hhm1016 2010-10-22 10:01:09
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 子句中的项就必须出现在选择列表中。

说明:我查询出来的有重复项,我想先去掉重复项,然后在按以指定的顺序排列,请问该怎么修改呢???
高手请解答,谢谢。。。
...全文
175 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hhm1016 2010-10-22
[Quote=引用 5 楼 orchidcat 的回复:]
SQL code
SELECT *
FROM ( SELECT DISTINCT
mc
FROM tkh
) T
ORDER BY ( CASE mc
WHEN '董事长' THEN 1
WHEN '副董' THEN 2
……
[/Quote]

谢了,我再问下,就是有多个左连接的话该怎么写了??
比如:
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
……

)
回复
--小F-- 2010-10-22
ORDER BY CASE...WHEN
回复
Mr_Nice 2010-10-22
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 )


???
最好来点儿数据和结果。
回复
Rotel-刘志东 2010-10-22
select  mc 
from tkh
group by mc
order by
(CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end)
回复
水族杰纶 2010-10-22
--更正
select mc
from tkh
group by mc
order by
(CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end)
回复
SQLCenter 2010-10-22
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)
回复
水族杰纶 2010-10-22
select distinct mc from tkh
order by
(CASE mc WHEN '董事长' THEN 1 WHEN '副董' THEN 2 WHEN '经理' THEN 3 WHEN '副经理' THEN 4 end)
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-22 10:01
社区公告
暂无公告