前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析。一开始便想到了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多条件统计查询的简单方法相关推荐

  1. delphi通过odac调用oracle 过程参数为数组,delphi,odac执行存储过程的正确和简单方法...

    --插入记录 function ft_addTable(PTableName string, PTableId out integer) return integer; 错误的方法 var OraSt ...

  2. 统计查询和组合查询(SQL SERVER 2008)

    一 .实验题目:统计查询和组合查询 二 .实验目的:加深对统计查询的理解,熟练使用聚簇函数 题目六: 药品(编号,名称,价格,厂商) 处方(药品编号,数量,医生编号) 医生 (编号,姓名,科室,职称) ...

  3. ORACLE多条件的统计查询(case when)

    前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有 ...

  4. Oracle 存储过程中,解决变量使用 in条件时,查询无效问题

    oracle 存储过程中,定义变量之后,使用变量进行 in 条件查询时,会出现查询条件无效的问题 表结构 表数据 解决方法 create or replace type strsplit_type i ...

  5. oracle 查询条件 if,oracle查询语句if

    oracle语句查询or和andSELECT*FROMPersonsWHERE(FirstName=' (FirstName='Thomas' OR FirstName='William') AND ...

  6. Oracle数据库学习(六):where条件查询及关键字使用

    条件查询 使用where语句查询筛选 语法:select field_name1,--,field_namen from tab_name where 筛选条件 1. 单条件查询 单条件查询 -- 使 ...

  7. oracle条件查询数量统计,Oracle多条件的统计查询(case when)

    要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有一种语 ...

  8. oracle 丁勇 从零开始学_8.3.1 多表查询分类

    8.3  多表查询 多表查询是指使用SELECT语句从多个表中查询数据,多个表之间通过主外键关系进行关联.在Oracle中,多表查询有两种写法,一种是由ANSI制定的标准的连接语法:另一种是由Orac ...

  9. Oracle编程入门经典 第2章 SQLPlus和基本查询

    怎样使用SQL*Plus工具连接数据库以及执行查询 怎样配置SQL*Plus,以格式化查询结果 SQL语句的不同种类 怎样在数据库上编写查询来查看数据 怎样修改存储在数据库中的数据 2.1 SQL*P ...

最新文章

  1. [MetalKit]2-Using-MetalKit-part-1使用MetalKit1
  2. 【转】Ubuntu VI基本用法
  3. 【模块】脉搏血氧仪和心率监测仪生物传感器MAX30102
  4. 高手请进关于RAID和热备
  5. 什么意思是谁_舔狗是什么意思?如果不是真的喜欢谁又愿意做舔狗呢出处?
  6. 好看好用的花前月下网易云等级代挂程序(支持扫码登录)
  7. layer icon对应图标
  8. 什么是Smartdrv程序
  9. 【STM32】红外对射计数器计数原理和代码
  10. 高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率3(JAVA 小虚竹)
  11. 2019最新财务管理计算器源码
  12. 软件项目规模度量与实际应用
  13. 张宇考前叮嘱:关于代数、级数、微分方程的三道送命题
  14. hive启动报错:Relative path in absolute URI:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
  15. 为啥功放上的音量控制的dB数都是负的
  16. 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间
  17. 2021年软件测试工具总结——模糊测试工具
  18. 第55届高博会余温未减,中科易安联网智能门锁获全国高校青睐
  19. Oracle 全文索引
  20. c/c++ 洛谷 P1007 独木桥

热门文章

  1. w10电脑c盘满了怎么清理_Win10系统C盘满了如何清理|Win10系统C盘满了的清理方法...
  2. 谈一谈|创新创业训练营结业思考分享
  3. MacOS Docker 安装
  4. RESTful API的设计原则
  5. 家长不会教、孩子学不好,家庭教育如何破局?
  6. 【计算机组成原理】-- 原码,反码,补码,移码整数小数计算
  7. 数据分类《二》贝叶斯分类
  8. “我不会讨好领导,被说情商低”
  9. java计算机毕业设计律师事务所网站源码+系统+mysql数据库+lw文档
  10. win11 系统登录问题,PIN 设置问题