数据库问题

sql server,数据结构是ID,部门,责任人,第一行是 01,财务部,张三,第二行是02,人事部,王五,第三行是03,财务部,张三。我想得到的是

1684724931571.png

财务部一定要在人事部前面,怎么写SQL查询语句

补充一下就是部门可能存在很多,必须按照特定的部门顺序进行排序,各部门首字母并不存在规律的前后关系,我想得到的是下面这种

image.png

FineReport 帆软用户p9k8MX4NIW 发布于 2023-5-22 11:09 (编辑于 2023-5-22 11:18)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
快乐星光Lv5中级互助
发布于2023-5-22 11:54(编辑于 2023-5-22 11:56)

有一个笨办法:order by case 部门 when '财务部' then 1 when '人事部' then 2 end。或者sql添加一个排序字段,想要什么顺序自己写。

最佳回答
0
luojian0323Lv7资深互助
发布于2023-5-22 11:10(编辑于 2023-5-22 13:33)

order by decocde(部门,'财务部',1,'人事部',2,'A部',3,'Q部',4,'B部',5,部门)

最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2023-5-22 11:14

要么数据库里给序号,要么自定义排序order by charindex(部门,'财务部','人事部')

  • 帆软用户p9k8MX4NIW 帆软用户p9k8MX4NIW(提问者) 我补充了问题,你可以再看下
    2023-05-22 11:19 
  • 就TM你叫夏洛啊 就TM你叫夏洛啊 回复 帆软用户p9k8MX4NIW(提问者) 要不你维护一个部门表,部门表里有顺序字段,left join 这个部门表,order by这个部门表里的顺序字段
    2023-05-22 13:36 
最佳回答
0
年年plusLv5中级互助
发布于2023-5-22 11:23

数据库里重新加上一列做你特殊排序的,直接按照特殊排序的来存顺序

最佳回答
0
大林3143511Lv5中级互助
发布于2023-5-22 11:57

利用union all

select ‘1’as 顺序,其他 from 表 where 部门 =部门1

union all 

select ‘2’as 顺序,其他 from 表 where 部门 =部门2

...

最后再嵌套查询,order by 顺序

看看这样行吗?

  • 6关注人数
  • 290浏览人数
  • 最后回答于:2023-5-22 13:33
    请选择关闭问题的原因
    确定 取消
    返回顶部