筛选及排序语句,提示错误

zhx730621 2019-04-29 08:14:51
编写了一个筛选及排序语句,提示错误,如何修改:
Select DISTINCT sbzrbm from clsbtz where sbzrbm is not null group by sbzrbm ORDER BY (CASE sbzrbm WHEN '工厂冲压车间' THEN 1 WHEN '工厂焊装一车间' THEN 2 WHEN '工厂焊装二车间' THEN 3 WHEN '工厂涂装车间' THEN 4 WHEN '工厂总装车间' THEN 5 WHEN '工厂整车品质管理室' THEN 6 WHEN '工厂压铸车间' THEN 7 WHEN '工厂机加车间' THEN 8 WHEN '工厂C10TD机加车间' THEN 9 WHEN '工厂装配车间' THEN 10 WHEN '工厂C10TD装配车间' THEN 11 WHEN '工厂发动机品质管理室' THEN 12 WHEN '工厂设备保全室冲压模修' THEN 13 WHEN '工厂设备保全室冲压维修' THEN 14 WHEN '工厂设备保全室焊装维修' THEN 15 WHEN '工厂设备保全室涂装维修' THEN 16 WHEN '工厂设备保全室总装维修' THEN 17 WHEN '工厂设备保全室发动机模修' THEN 18 WHEN '工厂设备保全室发动机维修' THEN 19 WHEN '工厂设备保全室武汉外网维修' THEN 20 WHEN '工厂设备保全室武汉污水处理站' THEN 21 WHEN '工厂设备保全室武汉高压运行' THEN 22 WHEN '工厂设备保全室新能源维修' THEN 23 WHEN '工厂设备保全室新能源外网维修' THEN 24 WHEN '工厂设备保全室新能源污水处理站' THEN 25 WHEN '工厂设备保全室新能源高压运行' THEN 26 WHEN '工厂综合管理室' THEN 27 WHEN '制造管理部制造支持室' THEN 28 END)



...全文
391 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yolyry 2019-05-03
  • 打赏
  • 举报
回复
去掉distinct用group by 吧
你写的这SQL,太反人类了,要是有100个选项,你还能case到100啊...建议直接添加一个车间信息表,1对应“工厂冲压车间”,2对应“工厂焊装一车间”,依次类推,使用的时候join连查就好了
Dear SQL(燊) 2019-04-29
  • 打赏
  • 举报
回复
第一条sql,可以去掉DISTINCT ,用group by 就可以了
卖水果的net 版主 2019-04-29
  • 打赏
  • 举报
回复
加了distinct ,就不要加 group by 了。
Dear SQL(燊) 2019-04-29
  • 打赏
  • 举报
回复
不行,改为 ORDER BY 2
xzrmhp 2019-04-29
  • 打赏
  • 举报
回复
Select DISTINCT sbzrbm, CASE sbzrbm WHEN '工厂冲压车间' THEN 1 WHEN '工厂焊装一车间' THEN 2 WHEN '工厂焊装二车间' THEN 3 WHEN '工厂涂装车间' THEN 4 WHEN '工厂总装车间' THEN 5 WHEN '工厂整车品质管理室' THEN 6 WHEN '工厂压铸车间' THEN 7 WHEN '工厂机加车间' THEN 8 WHEN '工厂C10TD机加车间' THEN 9 WHEN '工厂装配车间' THEN 10 WHEN '工厂C10TD装配车间' THEN 11 WHEN '工厂发动机品质管理室' THEN 12 WHEN '工厂设备保全室冲压模修' THEN 13 WHEN '工厂设备保全室冲压维修' THEN 14 WHEN '工厂设备保全室焊装维修' THEN 15 WHEN '工厂设备保全室涂装维修' THEN 16 WHEN '工厂设备保全室总装维修' THEN 17 WHEN '工厂设备保全室发动机模修' THEN 18 WHEN '工厂设备保全室发动机维修' THEN 19 WHEN '工厂设备保全室武汉外网维修' THEN 20 WHEN '工厂设备保全室武汉污水处理站' THEN 21 WHEN '工厂设备保全室武汉高压运行' THEN 22 WHEN '工厂设备保全室新能源维修' THEN 23 WHEN '工厂设备保全室新能源外网维修' THEN 24 WHEN '工厂设备保全室新能源污水处理站' THEN 25 WHEN '工厂设备保全室新能源高压运行' THEN 26 WHEN '工厂综合管理室' THEN 27 WHEN '制造管理部制造支持室' THEN 28 END as paixu
from clsbtz where sbzrbm is not null group by sbzrbm ORDER BY paixu

这样行不?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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