求助多列排序的问题

image.png

先按3 部门排序,之后把1按自定义排序

FineReport wgw3721 发布于 2021-3-8 08:39
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
axingLv6专家互助
发布于2021-3-8 09:17

用case when 自定义uid,例如

 order by dept_no,case when uid<100 then uid*100 else uid end

最佳回答
0
MKERALv6初级互助
发布于2021-3-8 08:45

直接在sql加上order by dept_no, uid

最佳回答
0
fangchenLv5见习互助
发布于2021-3-8 08:48

order by dept_no,uid

最佳回答
0
xiaoxing2315Lv6见习互助
发布于2021-3-8 08:57

在查询里增加一列 case when uid。。。,按照自定义顺序先排好序,比如case when uid=2 then 1 when uid=3 then 2 等等,最后再order by dept_no, uid

最佳回答
0
烟尘Lv6高级互助
发布于2021-3-8 09:09

无法确定表里uid是否为字符串

如果是字符串,要想按数字顺序排序,就转一下数字格式

select convert(int,uid) uuid,dept_no from 表 order by dept_no,uuid

如果是数字,要按字符顺序排序,就转成字符串格式

select convert(varchar(20),uid) uuid ,dept_no from 表 order by dept_no,uuid

如果要按找自定义的顺序,那就先要做一个uid跟排序号的对应,可以通过加表或者加字段实现,也可以通过case when 实现,区别就是case when 要有一个标准规则

以上语法是sqlserver的,其他数据库会有不同请自行百度

  • 5关注人数
  • 441浏览人数
  • 最后回答于:2021-3-8 09:17
    请选择关闭问题的原因
    确定 取消
    返回顶部