Sql多条件排序

摘要:
多条件排序可以通过在orderby语句后面使用casewhenthen条件语句来实现。2.导入数据:INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;INSERTINTO"XIANGZH"."case_test"VALUES;未排序截图:3.多条件分组排序select*from"case_test"ORDERBYcasewhen"case_type"='盗窃案'then0else1end,casewhen"case_location"='台东'then0else1end,casewhen"case_way"='技术开锁'then0else1endASC查询结果是按照条件分组排序,结果截图:4.满足条件个数排序select*from"case_test"ORDERBYcasewhen"case_type"='盗窃案'and"case_location"='台东'and"case_way"='技术开锁'then0when"case_type"='盗窃案'and"case_location"='台东'then1when"case_type"='盗窃案'and"case_way"='技术开锁'then2when"case_location"='台东'and"case_way"='技术开锁'then3when"case_type"='盗窃案'then4when"case_location"='台东'then5when"case_way"='技术开锁'then6else7end查询结果是按照满足条件的个数排序,截图:如果有更合理的sql写法,欢迎留言讨论。

多条件排序可以通过在order by语句后面使用case when then条件语句来实现。

select * from 表名 ORDER BY case when 条件 then 0 else 1 end

例子:

1.创建表case_test

共有id,case_type,case_location,case_way四个字段。

2.导入数据:
INSERT INTO "XIANGZH"."case_test" VALUES ('1', '盗窃案', '台东', '技术开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('88', '谋杀案', '台东', '技术开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('99', '盗窃案', '江西路', '技术开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('5', '盗窃案', '台东', '暴力开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('6', '盗窃案', '江西路', '暴力开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('7', '谋杀案', '台东', '暴力开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('8', '谋杀案', '江西路', '技术开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('9', '谋杀案', '江西路', '暴力开锁');
INSERT INTO "XIANGZH"."case_test" VALUES ('10', '盗窃案', '台东', '技术开锁');

未排序截图:

Sql多条件排序第1张

3.多条件分组排序
select * from "case_test" ORDER BY 
case when "case_type"='盗窃案' then 0 else 1 end,
case when "case_location" = '台东' then 0 else 1 end,
case when "case_way" = '技术开锁' then 0 else 1 end ASC

查询结果是按照条件分组排序(先按case_type排序,再按case_location排序,最后按case_way排序),结果截图:

Sql多条件排序第2张

4.满足条件个数排序
select * from "case_test" ORDER BY 
case 
when "case_type"='盗窃案' and "case_location" = '台东' and "case_way" = '技术开锁' then 0
when "case_type"='盗窃案' and "case_location" = '台东' then 1
when "case_type"='盗窃案' and "case_way" = '技术开锁' then 2
when "case_location" = '台东' and "case_way" = '技术开锁' then 3
when "case_type"='盗窃案' then 4
when "case_location" = '台东' then 5
when "case_way" = '技术开锁' then 6
else 7
end

查询结果是按照满足条件的个数排序,截图:

Sql多条件排序第3张

如果有更合理的sql写法,欢迎留言讨论。

参考:

ORACLE按条件排序的例子

Oracle怎么按条件排序

免责声明:文章转载自《Sql多条件排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇通过props设置vue子组件的显示与隐藏时序数据库的选择?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

kafka教程

一、理论介绍 (一)相关资料 1、官方资料,很具体: http://kafka.apache.org/documentation.html#quickstart 2、有一篇翻译版。基本一致。有些细节不同,建议入门时先读此文。再读官方文档。若自认英语非常强,请忽视: http://www.linuxidc.com/Linux/2014-07/104470....

用scikit-learn和pandas学习线性回归

对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题 没有数据,当然没法研究机器学习啦。:) 这里我们用UCI大学公开的机器学习数据来跑线性回归。 数据的介绍在这:http://archive.ics.uci.edu/ml/datasets/...

使用TPU在PyTorch中实现ResNet50

作者|DR. VAIBHAV KUMAR 编译|VK 来源|Analytics In Diamag PyTorch通过提供大量强大的工具和技术,一直在推动计算机视觉和深度学习领域的发展。 在计算机视觉领域,基于深度学习的执行需要处理大量的图像数据集,因此需要一个加速的环境来加快执行过程以达到可接受的精度水平。 PyTorch通过XLA(加速线性代数)提供了...

前端利器躬行记(7)——自制脚手架

在学习了Webpack基础后,查看别人写好的脚手架总是会一头雾水,后面就上网查各种资料,一边参考一边修改,整出了一套简易的脚手架(已上传至GiuHub和npm上),借鉴了Create React App(CRA)的目录结构(如下所示),并做成了命令行工具(已上传至GiuHub和npm上)。 ├── pwu -------------------------...

HDFS 命令深入浅出

HDFS 命令深入浅出~ [root@neusoft-master ~]# hadoop dfs Usage: hadoop fs [generic options][-appendToFile <localsrc> ... <dst>][-cat [-ignoreCrc] <src> ...][-checksum &l...

Springboot中的@EnableAsync和@Async的作用和基本用法

  日常开发中,我们偶尔会遇到在业务层中需要同时修改多张表的数据并需要有序的执行,如果用往常的同步的方式,也就是单线程的方式来执行的话,可能会出现执行超时等异常造成请求结果失败,及时成功,前端也需要等待较长时间来获取响应结果,这样不但造成了用户体验差,而且会经常出现请求执行失败的问题,在这里我们一般会采用3种方式来处理。 在采用三种方式之前,我们所有来观察...