oracle查询多个条件查询,ORACLE多条件统计查询的简单方法
前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析。一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该。
@H_301_2@
然后就开始百度,多种条件下的统计。然后有一种语法让我眼前一亮,case when then else end
@H_301_2@
当满足CASE设定的条件时,就可以执行then语句。由于我要做的分组查询统计,是要罗列每一种情况,而且根据输入的“管理员编号”不同返回不同结果,结果记录的条数和每一种情况是可知的,这个语法完全可用
@H_301_2@
核心代码如下:
@H_301_2@
SELECT SUBSTR(A.业务,1,2) 行政区域,SUBSTR(A.业务,3,LENGTH(A.业务)-2) 业务模块,A.已结案,A.办理中,A.案件总数,
ROUND(A.已结案 /decode(A.案件总数,9999,A.案件总数),4) * 100 || '%' 完成率
@H_301_2@
FROM
@H_301_2@
(SELECT '市级律师服务' 业务,
@H_301_2@
1 排序,
@H_301_2@
SUM(CASE WHEN 区县代码 IS NULL AND (TRUNC(委托时间,'DD') BETWEEN V_SJQ AND V_SJZ) AND 申请状态代码 IN ('ztdm1','ztdm2') THEN 1 ELSE 0 END) 已结案,'DD') BETWEEN V_SJQ AND V_SJZ) AND 申请状态代码 NOT IN ('ztdm1','ztdm2') THEN 1 ELSE 0 END) 办理中,'DD') BETWEEN V_SJQ AND V_SJZ) AND 申请状态代码 IS NOT NULL THEN 1 ELSE 0 END) 案件总数
@H_301_2@
FROM TA_律师申请委托
@H_301_2@
)A
@H_301_2@
WHERE A.排序 IN(V_排序1,V_排序2,V_排序3,V_排序4,V_排序5)
@H_301_2@
ORDER BY A.排序;
@H_301_2@
通过排序号,来控制不同管理员查询的数据范围不同:
@H_301_2@
sql;">
V_排序1 INTEGER;
V_排序2 INTEGER;
V_排序3 INTEGER;
V_排序4 INTEGER;
V_排序5 INTEGER;
-----------------------------
SELECT
DECODE(P_管理员编号,'test1',2,'test2','test3',4,'test4',5
) INTO V_排序1 FROM DUAL;
V_排序2:=V_排序1+6;
V_排序3:=V_排序1+12;
V_排序4:=V_排序1+18;
V_排序5:=V_排序1+24;
总结@H_301_2@
目前测试数据量不大,优化前后性能差别不明显,但是代码行数减少了3倍以上,可读性明显增强,少了很多IF判断,理论上复杂度减少很多。@H_301_2@
以上就是本文关于ORACLE多条件统计查询的简单方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:、、分页查询性能优化代码详解 等,有什么问题可以随时留言,小编会及时回复大家。感谢朋友们对编程之家网站的支持!@H_301_2@
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
oracle查询多个条件查询,ORACLE多条件统计查询的简单方法相关推荐
- delphi通过odac调用oracle 过程参数为数组,delphi,odac执行存储过程的正确和简单方法...
--插入记录 function ft_addTable(PTableName string, PTableId out integer) return integer; 错误的方法 var OraSt ...
- 统计查询和组合查询(SQL SERVER 2008)
一 .实验题目:统计查询和组合查询 二 .实验目的:加深对统计查询的理解,熟练使用聚簇函数 题目六: 药品(编号,名称,价格,厂商) 处方(药品编号,数量,医生编号) 医生 (编号,姓名,科室,职称) ...
- ORACLE多条件的统计查询(case when)
前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有 ...
- Oracle 存储过程中,解决变量使用 in条件时,查询无效问题
oracle 存储过程中,定义变量之后,使用变量进行 in 条件查询时,会出现查询条件无效的问题 表结构 表数据 解决方法 create or replace type strsplit_type i ...
- oracle 查询条件 if,oracle查询语句if
oracle语句查询or和andSELECT*FROMPersonsWHERE(FirstName=' (FirstName='Thomas' OR FirstName='William') AND ...
- Oracle数据库学习(六):where条件查询及关键字使用
条件查询 使用where语句查询筛选 语法:select field_name1,--,field_namen from tab_name where 筛选条件 1. 单条件查询 单条件查询 -- 使 ...
- oracle条件查询数量统计,Oracle多条件的统计查询(case when)
要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有一种语 ...
- oracle 丁勇 从零开始学_8.3.1 多表查询分类
8.3 多表查询 多表查询是指使用SELECT语句从多个表中查询数据,多个表之间通过主外键关系进行关联.在Oracle中,多表查询有两种写法,一种是由ANSI制定的标准的连接语法:另一种是由Orac ...
- Oracle编程入门经典 第2章 SQLPlus和基本查询
怎样使用SQL*Plus工具连接数据库以及执行查询 怎样配置SQL*Plus,以格式化查询结果 SQL语句的不同种类 怎样在数据库上编写查询来查看数据 怎样修改存储在数据库中的数据 2.1 SQL*P ...
最新文章
- [MetalKit]2-Using-MetalKit-part-1使用MetalKit1
- 【转】Ubuntu VI基本用法
- 【模块】脉搏血氧仪和心率监测仪生物传感器MAX30102
- 高手请进关于RAID和热备
- 什么意思是谁_舔狗是什么意思?如果不是真的喜欢谁又愿意做舔狗呢出处?
- 好看好用的花前月下网易云等级代挂程序(支持扫码登录)
- layer icon对应图标
- 什么是Smartdrv程序
- 【STM32】红外对射计数器计数原理和代码
- 高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率3(JAVA 小虚竹)
- 2019最新财务管理计算器源码
- 软件项目规模度量与实际应用
- 张宇考前叮嘱:关于代数、级数、微分方程的三道送命题
- hive启动报错:Relative path in absolute URI:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
- 为啥功放上的音量控制的dB数都是负的
- 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间
- 2021年软件测试工具总结——模糊测试工具
- 第55届高博会余温未减,中科易安联网智能门锁获全国高校青睐
- Oracle 全文索引
- c/c++ 洛谷 P1007 独木桥
热门文章
- w10电脑c盘满了怎么清理_Win10系统C盘满了如何清理|Win10系统C盘满了的清理方法...
- 谈一谈|创新创业训练营结业思考分享
- MacOS Docker 安装
- RESTful API的设计原则
- 家长不会教、孩子学不好,家庭教育如何破局?
- 【计算机组成原理】-- 原码,反码,补码,移码整数小数计算
- 数据分类《二》贝叶斯分类
- “我不会讨好领导,被说情商低”
- java计算机毕业设计律师事务所网站源码+系统+mysql数据库+lw文档
- win11 系统登录问题,PIN 设置问题