有的时候我们统计需要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. MSSQL 修改数据库的排序规则

    1.修改数据库排序规则 ALTER DATABASE [CHARACTER] COLLATE Chinese_PRC_CI_AS ; 2.修改表中列的排序规则 如果下列其中之一当前正在引用一个列,则无 ...

  2. 5.PHP 教程_PHP echo/print

    PHP echo 和 print 语句 echo和print区别: echo-可以输出一个或多个字符串 print-只允许输出一个字符串,返回值总为1 提示:echo输出的速度比print快,echo ...

  3. Altium designer 10如何设置标题栏

    一.修改设置 1.执行Design-Document Option,打开文档属性对话框,设置其中title等参数. 2.执行Place-Text String,按TAB键,将Text属性中设置为&qu ...

  4. 解决用户 'IIS APPPOOL\Classic .NET AppPool' 登录失败

    解决用户 'IIS APPPOOL\Classic .NET AppPool' 登录失败 windows 7进入iis管理器 本地应用程序池 选中classic. net appPool 选择右侧的 ...

  5. js运算符(运算符的结合性)

    1.javascript具有下列种类的运算符:算术运算符;逻辑运算符;比较运算符; 2.目的分类:字符串运算符;逻辑运算符;逐位运算符;赋值运算符; 3.特殊运算符:条件运算符;typeof运算符;创 ...

  6. net-snmp启用python模块

    1. http://blog.jeoygin.org/2011/09/centos-5-install-python-2-6-and-python-setuptools-2-6.html 2. htt ...

  7. Spring-data-redis: 分布式队列

    Redis中list数据结构,具有"双端队列"的特性,同时redis具有持久数据的能力,因此redis实现分布式队列是非常安全可靠的.它类似于JMS中的"Queue&qu ...

  8. python命令行参数处理

    使用argparse包来解析命令行参数: #/usr/bin/python #encoding=utf-8 import argparse parser = argparse.ArgumentPars ...

  9. HTML之表格与表单

    一.表格(table/tr/td) <table></table>表格 --不设高度 width:宽度.可以用像素或百分比表示. 常用960像素. border:边框,常用值为 ...

  10. [译]Stairway to Integration Services Level 13 - SSIS 变量回顾

    介绍 在前一篇中我们组合了已经学过的事件冒泡 event bubbling, 日志记录 logging, 和父子模型 Parent-Child pattern 建立了自定义的SSIS包日志记录. 本文 ...