有的时候我们统计需要like多个条件,比如某个字段中含有 “银行”或者“投资公司”,这个时候就用like多个字段。

如下是统计某个地区的2015年入院的病种诊断中带有 “癌”或者“肿瘤”的情况,

正确的写法如:

 SELECT B.AAC002 身份证号,
B.AAC003 姓名,
TEMP_FUNC_WYL('AAC004', B.AAC004) 性别,
C.AAB004 单位,
C.AAB999 单位编号,
D.AAE006 地址,
D.AAE005 联系电话,
SUBSTR(A.CKC537, 1, 8) 入院时间,
SUBSTR(A.CKC538, 1, 8) 出院时间,
A.CKC546 出院诊断,
A.CKB519 就诊医院
FROM KC21 A, AC01 B, AE01 C, SAC02 D
WHERE A.AAC001 = B.AAC001
AND B.AAC001 = D.AAC001
AND B.AAB001 = C.AAB001
AND B.BAE001 = ''
AND SUBSTR(A.CKC537, 1, 4) = 2015
AND A.CKC546 LIKE '%癌%'
GROUP BY B.AAC002,
B.AAC003,
B.AAC004,
C.AAB004,
C.AAB999,
D.AAE006,
D.AAE005,
A.CKC537,
A.CKC538,
A.CKC546,
A.CKB519
UNION ALL
SELECT B.AAC002 身份证号,
B.AAC003 姓名,
TEMP_FUNC_WYL('AAC004', B.AAC004) 性别,
C.AAB004 单位,
C.AAB999 单位编号,
D.AAE006 地址,
D.AAE005 联系电话,
SUBSTR(A.CKC537, 1, 8) 入院时间,
SUBSTR(A.CKC538, 1, 8) 出院时间,
A.CKC546 出院诊断,
A.CKB519 就诊医院
FROM KC21 A, AC01 B, AE01 C, SAC02 D
WHERE A.AAC001 = B.AAC001
AND B.AAC001 = D.AAC001
AND B.AAB001 = C.AAB001
AND B.BAE001 = ''
AND SUBSTR(A.CKC537, 1, 4) = 2015
AND A.CKC546 LIKE '%肿瘤%'
GROUP BY B.AAC002,
B.AAC003,
B.AAC004,
C.AAB004,
C.AAB999,
D.AAE006,
D.AAE005,
A.CKC537,
A.CKC538,
A.CKC546,
A.CKB519;

错误的写法:

 SELECT B.AAC002 身份证号,
B.AAC003 姓名,
TEMP_FUNC_WYL('AAC004', B.AAC004) 性别,
C.AAB004 单位,
C.AAB999 单位编号,
D.AAE006 地址,
D.AAE005 联系电话,
SUBSTR(A.CKC537, 1, 8) 入院时间,
SUBSTR(A.CKC538, 1, 8) 出院时间,
A.CKC546 出院诊断,
A.CKB519 就诊医院
FROM KC21 A, AC01 B, AE01 C, SAC02 D
WHERE A.AAC001 = B.AAC001
AND B.AAC001 = D.AAC001
AND B.AAB001 = C.AAB001
AND B.BAE001 = ''
AND SUBSTR(A.CKC537, 1, 4) = 2015
AND A.CKC546 LIKE '%癌%' or LIKE '%肿瘤%'
GROUP BY B.AAC002,
B.AAC003,
B.AAC004,
C.AAB004,
C.AAB999,
D.AAE006,
D.AAE005,
A.CKC537,
A.CKC538,
A.CKC546,
A.CKB519

如果用这种写法,就会得到意想不到的结果。第二条统计语句的统计结果里肯定不仅仅包含2015年的情况,因为关键词 "or" 的前后是两个条件,Oracle把or前后两段当作两个完全独立的筛选条件了,or前面的是按照统计条件来统计的,而 or 后面的则 只是筛选了病种里带有“肿瘤”字样的情况。

Oracle统计之like,or关键字的更多相关文章

  1. 有关Oracle统计信息的知识点[z]

    https://www.cnblogs.com/sunmengbbm/p/5775211.html 一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如, ...

  2. 怎么样通过编写Python小程序来统计测试脚本的关键字

    怎么样通过编写Python小程序来统计测试脚本的关键字 通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数.业务函数需要修改,那么势必要找出那些引 ...

  3. 有关Oracle统计信息的知识点

    一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于 ...

  4. Oracle 提供的start with 关键字用法

    在相关业务查询中,我们常常遇到相关的上下级关系情况,如下图中行政区划关联,此时就要用到Oracle 提供的start with 关键字来帮助我们进行递归查询 基本语法 SELECT ... FROM ...

  5. [Oracle] oracle统计信息

    Oracle统计信息 Oracle数据库里的统计信息可以分为6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 图 1: Oracle统计信息 基 ...

  6. oracle统计信息

    手工刷ORACLE统计信息  select count(1) from LOG_TRX_DETAIL;  select * from user_tab_statistics where table_n ...

  7. Oracle统计、分析和优化环境配置

    Oracle统计.分析和优化环境配置 创建批处理文件Login.bat 用于初始化设置系统环境 Login.bat @echo off title eoda mode con cols=140 col ...

  8. Oracle基础之保留字和关键字

    Oracle基础之保留字和关键字 在Oracle之中,有分为保留字和关键字,所谓关键字就是Oracle中有实际意义的,而保留字(比如DESC.ORDER等等)是Oracle中不能随便使用的,比如不能随 ...

  9. ORACLE 统计文件后缀SQL

    ORACLE 统计文件后缀SQL查询语句 select lower(substr(file_name,instr(file_name, '.', -1),length(file_name))),cou ...

随机推荐

  1. [置顶] How to create Oracle 11g R2 database manually in ASM?

    Step 1: Specify an Instance Identifier (SID) export ORACLE_SID=maomi Step 2: Ensure That the Require ...

  2. A Byte of Python 笔记(11)异常:try..except、try..finally

    第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...

  3. google浏览器的安装

    很简单,命令行下安装命令:apt-get install google-chrome-stable(如安装不成功,输入apt-get -f install进行修复依赖,之后在菜单里就可以看到图标了) ...

  4. FPGA中改善时序性能的方法_advanced FPGA design

    本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一 ...

  5. python数据库连接

    现在装python基本都内置了sqlite连接,写成如下形式即可 from sqlite3 import dbapi2 as sqlite 如果需要insert或update东西,之后的cur必须co ...

  6. 静态方法中为什么不能使用this

  7. systemd.service 中文手册

    版权声明 本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布. 无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失. 自由使用:任何人都可以自 ...

  8. DllMain加载其他DLL造成的死锁问题及其解决办法

    使用VS 2008新建一个MFC ActiveX工程,因为在工程里要用到GDI+.我习惯把初始化GDI+库的代码放在应用程序类的InitInstance函数,对应的销毁代码放在ExitInstance ...

  9. IntelliJ IDEA 14 注册码生成器

    IntelliJ IDEA 14 注册码生成器 文件为Java代码 自己编译运行里面的程序输入名称然后就生成注册码了工具:http://yun.baidu.com/s/1cZKsA部分工具生成的注册码 ...

  10. Oracle包Package调用Package

    Package左侧文件: create or replace package CALL_DETAILS is strdatarange varchar2(1) := '1'; numrow_num n ...