去掉重复项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 子句中的项就必须出现在选择列表中。

说明:我查询出来的有重复项,我想先去掉重复项,然后在按以指定的顺序排列,请问该怎么修改呢???
高手请解答,谢谢。。。
...全文
281 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧