sql server,数据结构是ID,部门,责任人,第一行是 01,财务部,张三,第二行是02,人事部,王五,第三行是03,财务部,张三。我想得到的是
财务部一定要在人事部前面,怎么写SQL查询语句
补充一下就是部门可能存在很多,必须按照特定的部门顺序进行排序,各部门首字母并不存在规律的前后关系,我想得到的是下面这种
有一个笨办法:order by case 部门 when '财务部' then 1 when '人事部' then 2 end。或者sql添加一个排序字段,想要什么顺序自己写。
order by decocde(部门,'财务部',1,'人事部',2,'A部',3,'Q部',4,'B部',5,部门)
要么数据库里给序号,要么自定义排序order by charindex(部门,'财务部','人事部')
数据库里重新加上一列做你特殊排序的,直接按照特殊排序的来存顺序
利用union all
select ‘1’as 顺序,其他 from 表 where 部门 =部门1
union all
select ‘2’as 顺序,其他 from 表 where 部门 =部门2
...
最后再嵌套查询,order by 顺序
看看这样行吗?