已解决
人员查询的时候,输入多个人员姓名查询,想把查询的结果按照人名输入的顺序显示(sqlserver、mysql、Oracle、pgsql下的自定义排序)。
来自网友在路上 11058105提问 提问时间:2023-11-06 20:52:07阅读次数: 105
最佳答案 问答题库1058位专家为你答疑解惑
由于业务需求客户提出在进行多个人员姓名查询时,想把查询的结果按照人名输入的顺序显示。
开始是打算对查出来的数据进行二次处理重新排序,但是由于数据量大,查询必需要分页查询,这样一来,二次处理显然不是一个明智的方式。这种情况下只能从数据库入手,对于长期使用框架的人来说着实有点难度。
多方查找资料得出以下几种方式均可以实现该目的,由于项目环境,代码中使用的也是第四种方式,所以第四种也介绍的最详细。
一、ORDER BY子句结合CASE·表达式
假设有一个名为people的表:
SELECT *
FROM people
WHERE person_name IN ('张三','李斯','王武','赵六') --输入的人员姓名序列
ORDER BY
CASE person_name
WHEN '张三' THEN 1
WHEN '李斯' THEN 2
WHEN '王武' THEN 3
WHEN '赵六' THEN 4
ELSE 5 --如果有其他人员不在列表中,可以将其放在未尾
END;
上述SQL查询首先使用WHERE·子句来筛选包含在输入的人员姓名列表中的记录,然后使用ORDER BY子句结合CASE·表达式,将结果按照你输入的姓名的顺序进行排序。每个姓名都有一个对应的权重,以确保它们按照指定的顺序显示。
可以根据实际情况修改查询中的表名、列名和姓名列表,以适应你的数据库架构和数据。
这个语句对于不同数据库的兼容性较大,亲测:
查看全文
99%的人还看了
相似问题
- 深度学习之基于YoloV5-Pose的人体姿态检测可视化系统
- 【毕业论文】基于MATLAB的人脸识别算法的研究
- 怎么通过联表合并表格的后查找不同职务职称的人数(python自动化办公,表格合并,同时查询不同类别情况下的个数)
- 基于yolov2网络的人脸识别系统matlab仿真,包括识别正脸,侧脸等
- AI:62-基于深度学习的人体CT影像肺癌的识别与分类
- 怎样提取视频提取的人声或伴奏?
- 基于深度学习的人脸表情识别 计算机竞赛
- 中国人民大学与加拿大女王大学金融硕士——在职读研,演绎精彩的人生
- 基于Java的人事考勤签到管理系统设计与实现(源码+lw+部署文档+讲解等)
- 使用python-opencv检测图片中的人像
猜你感兴趣
版权申明
本文"人员查询的时候,输入多个人员姓名查询,想把查询的结果按照人名输入的顺序显示(sqlserver、mysql、Oracle、pgsql下的自定义排序)。":http://eshow365.cn/6-33924-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!