oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询博客分类:

  • oracle
OracleSQL
比较运算符 >,<:大于,小于 >=.<=:大于等于,小于等于 =:等于 !=,<>,^=:不等于
逻辑运算符运算的优先顺序是NOT,AND,OR。如果要改变优先顺序,可以使用括号
逻辑运算符 AND:逻辑与,表示两个条件必须同时满足 OR:逻辑或,表示两个条件中有一个条件满足即可 NOT:逻辑非,返回与某条件相反的结果
特殊运算符 [NOT] BETWEEN…AND…:用于测试是否在范围内 [NOT] IN (…):用于测试是否在列表中 [NOT] LIKE:用于进行模式匹配 IS [NOT] NULL:用于测试是否为空值 ANY SOME:同列表或查询中的每一个值进行比较,测试是否有一个满足,前面必须使用的运算符包括=、!=、>=、<=、>、<等 ALL:同列表或查询中的每一个值进行比较,测试是否所有的值都满足,前面必须使用的运算符包括=、!=、>=、<=、>、<等 [NOT] EXISTS:测试是否子查询至少返回一行
IN的用法 使用以下运算形式,可以显示值满足特定集合的结果: [NOT] IN (...) 显示职务为“SALESMAN',“CLERK”和“MANAGER”的雇员信息。 输入并执行查询:

Sql代码
  1. SELECT * FROM emp WHERE job IN ('SALESMAN','CLERK','MANAGER');
SELECT * FROM emp WHERE job IN ('SALESMAN','CLERK','MANAGER');

执行结果从略。 注意:如果在IN前面增加NOT,将显示职务不在集合列表中的雇员。以上用法同样适用于数值型集合,
多行子查询 如果子查询返回多行的结果,则我们称它为多行子查询。多行子查询要使用不同的比较运算符号,它们是IN、ANY和ALL。 查询工资低于任何一个“CLERK”的工资的雇员信息。 执行以下查询:

Sql代码
  1. SELECT  empno, ename, job,sal FROM emp
  2. WHERE   sal < ANY (SELECT sal FROM emp WHERE job = 'CLERK')
  3. AND job <> 'CLERK';
SELECT  empno, ename, job,sal FROM empWHERE   sal < ANY (SELECT sal FROM emp WHERE job = 'CLERK')AND job <> 'CLERK';

执行结果为:

Sql代码
  1. EMPNO ENAME      JOB              SAL
  2. ------------------- ------------ ----------------- ---------------------
  3. 7521 WARD       SALESMAN         1250
  4. 7654 MARTIN     SALESMAN         1250
EMPNO ENAME      JOB              SAL------------------- ------------ ----------------- ---------------------7521 WARD       SALESMAN         12507654 MARTIN     SALESMAN         1250

说明:在emp表的雇员中有4个职务为“CLERK”,他们的工资分别是800、1100、950、1300。满足工资小于任何一个“CLERK”的工资的记录有2个,在这里使用了ANY运算符表示小于子查询中的任何一个工资。 注意:条件job <> 'CLERK'排除了职务是CLERK的雇员本身。 查询工资比所有的“SALESMAN”都高的雇员的编号、名字和工资。 执行以下查询:

Sql代码
  1. SELECT  empno, ename,sal FROM emp
  2. WHERE sal > ALL(SELECT sal FROM emp WHERE job= 'SALESMAN');
SELECT  empno, ename,sal FROM empWHERE sal > ALL(SELECT sal FROM emp WHERE job= 'SALESMAN');

执行结果为:

Sql代码
  1. EMPNO ENAME             SAL
  2. ---------------- ------------- -----------------------
  3. 7566 JONES               2975
  4. 7698 BLAKE               2850
  5. 7782 CLARK               2450
  6. 7788 SCOTT               3000
  7. 7839 KING                5000
  8. 7902 FORD                3000
 EMPNO ENAME             SAL---------------- ------------- -----------------------7566 JONES                29757698 BLAKE              28507782 CLARK              24507788 SCOTT              30007839 KING               50007902 FORD               3000

说明:在emp表的雇员中有4个职务为“SALESMAN”,他们的工资分别是1600、1250、1250、1500。在这里使用了ALL运算符,表示大于查询中所有的工资。 查询部门20中职务同部门10的雇员一样的雇员信息。 执行以下查询:

Sql代码
  1. SELECT  empno, ename, job FROM emp
  2. WHERE   job IN (SELECT job FROM emp WHERE deptno=10)
  3. AND deptno =20;
SELECT  empno, ename, job FROM emp
WHERE   job IN (SELECT job FROM emp WHERE deptno=10)
AND deptno =20;

执行结果为:

Sql代码
  1. EMPNO ENAME          JOB
  2. ------------------ -------------- ----------------------
  3. 7369 SMITH        CLERK
  4. 7876 ADAMS        CLERK
  5. 7566 JONES        MANAGER
  EMPNO ENAME          JOB------------------ -------------- ----------------------7369 SMITH        CLERK7876 ADAMS         CLERK7566 JONES         MANAGER

说明:在该训练中,使用IN运算符表示职务是子查询结果中的任何一个。部门10中有3种职务:MANAGER、PRESIDENT和CLERK,以上查询得到的是部门20中是这3种职务的雇员。
多列子查询 如果子查询返回多列,则对应的比较条件中也应该出现多列,这种查询称为多列子查询。以下是多列子查询的训练实例。 查询职务和部门与SCOTT相同的雇员的信息。 执行以下查询:

Sql代码
  1. SELECT  empno, ename, sal FROM emp
  2. WHERE (job,deptno) =(SELECT job,deptno FROM emp WHERE empno=7788);
SELECT  empno, ename, sal FROM empWHERE (job,deptno) =(SELECT job,deptno FROM emp WHERE empno=7788);

执行结果为:

Sql代码
  1. EMPNO ENAME      JOB
  2. ------------------ --------------- ----------------
  3. 7902 FORD        ANALYST
EMPNO ENAME      JOB------------------ --------------- ----------------7902 FORD        ANALYST

说明:在该例的子查询中返回两列,查询条件中也要出现两列,表示雇员的职务和部门应该和SCOTT的职务和部门相同。
LIKE的用法 使用LIKE操作符可完成按通配符查找字符串的查询操作,该操作符适合于对数据进行模糊查询。其语句法为: [NOT] LIKE 匹配模式 匹配模式中除了可以包含固定的字符之外,还可以包含以下的通配符: %:代表0个或多个任意字符。 _ :代表一个任意字符。 显示姓名以“S”开头的雇员信息。 输入并执行查询:

Sql代码
  1. SELECT * FROM emp WHERE ename LIKE'S%';
SELECT * FROM emp WHERE ename LIKE 'S%';

执行结果为:

Sql代码
  1. EMPNO ENAME     JOB             MGR HIREDATE     SAL   COMM     DEPTNO
  2. ------------- -------------- ------------------------- ---------- ------------------ ----------- ------------ ------------------
  3. 7369 SMITH    CLERK 7902 17-12月-80       800     20
  4. 7788 SCOTT    ANALYST   7566 19-4月 -87   3000           20
EMPNO ENAME      JOB             MGR HIREDATE     SAL   COMM     DEPTNO------------- -------------- ------------------------- ---------- ------------------ ----------- ------------ ------------------
7369 SMITH    CLERK 7902 17-12月-80       800     20
7788 SCOTT    ANALYST   7566 19-4月 -87   3000           20

说明:SMITH和SCOTT名字均以S开头,名字后边的字符和长度任意。 显示姓名第二个字符为“A”的雇员信息。 执行查询:

Sql代码
  1. SELECT * FROM emp WHERE ename LIKE'_A%';
SELECT * FROM emp WHERE ename LIKE '_A%';

说明:“_”代表第一个字符任意,第二个字符必须为“A”,“%”代表第二个字符后面的字符为任意字符,个数任意。
判断空值NULL 在表中,字段值可以是空,表示该字段没有内容。如果不填写,或设置为空则我们说该字段的内容为NULL。NULL没有数据类型,也没有具体的值,但是使用特定运算可以判断出来。这个运算就是: IS  [NOT] NULL 显示经理编号没有填写的雇员。 输入并执行查询:

Sql代码
  1. SELECT  ename, mgr FROM emp WHERE mgr ISNULL;
SELECT  ename, mgr FROM emp WHERE mgr IS NULL;

执行结果为:

Sql代码
  1. ENAME     MGR
  2. ------------ ---------------
  3. KING
ENAME     MGR------------ ---------------KING

注意:以下用法是错误的。 SELECT  ename, mgr FROM emp WHERE mgr=NULL;

转载于:https://www.cnblogs.com/caohs/archive/2013/04/22/3036657.html

oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询...相关推荐

  1. linux shell for while if case break continue echo test 及算术运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符 文件测试运算符

    linux shell for while if case break continue echo test 及算术运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符 文件测试运算符

  2. C语言运算符逻辑运算符位运算符

    逻辑运算符 下表显示了 C 语言支持的所有关系逻辑运算符.假设变量 A 的值为 1,变量 B 的值为 0,则: 运算符 描述 实例 && 称为逻辑与运算符.如果两个操作数都非零,则条件 ...

  3. Go 学习笔记(5)— 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、取地址和指针运算符

    1. Go 运算符分类 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 1.1 算术运算符 下表列出了所有Go语言的算术运算符.假定 A 值为 10, ...

  4. MySQL—运算符详解(算术、比较、逻辑、范围运算符与集合运算符 模糊查询 NULL值运算与null值判断 位运算符)

    MySQL--运算符详解 知识纲要 算术运算符 比较运算符 逻辑运算符 范围运算符与集合运算符 模糊查询 NULL值运算与null值判断 位运算符 1.算术运算符 加 减 乘 除 取余 div 也表示 ...

  5. C 运算符优先级——位运算符和逻辑运算符

    C 运算符优先级--位运算符和逻辑运算符   在进行C语言开发时,若单条表达式用到的运算符过多,需要注意运算符的优先级,否则无法得到欲得到的结果,最显而易见的便是"先算乘除,后算加减&quo ...

  6. mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程

    MysqL 列子查询及 IN.ANY.SOME 和 ALL 操作符的使用MysqL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如 ...

  7. 子查询及其分类(标量子查询+列子查询+行子查询+表子查询)

    子查询 什么是子查询 子查询概念 子查询:sub query 子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块.当一个查询是另一个查询的条件时,称之为子查询. 子查询:指在一 ...

  8. MySQL 学习笔记(16)— 子查询(单行单列、一行多列、多行多列、 ALL、ANY、SOME 运算符、EXISTS 操作符)

    1. 子查询概念 子查询是指嵌套在其他语句(SELECT . INSERT . UPDATE . DELETE 等)中的 SELECT 语句:子查询也称为内查询( inner query )或者嵌套查 ...

  9. 逻辑运算符 位运算符_在现代PHP中,按位运算符仍然有意义吗?

    逻辑运算符 位运算符 Many of you probably scratched your heads reading this title. "Bitwhat?" 你们中的许多 ...

最新文章

  1. 外界对程序员的误解究竟有多深?
  2. 词性标注,实体识别,ICTCLAS分析系统的学习
  3. django mysql连接超时设置_坑(一)—— Django ORM 连接超时的坑
  4. FILA之后又有Amer,安踏能成为“世界的安踏”吗?
  5. 去掉一键还原 开机按k键
  6. python科学计算笔记(四)pandas 数据索引与选取
  7. 1260 不一样的A+B
  8. Difference between stem and lemma
  9. opengl渲染4k数据提高效率
  10. 记一次 GitHub 出现 ^M 符号的解决办法
  11. css与jquery、图标字体、常用数据
  12. Jmeter-阶梯场景设置
  13. 万年历插件软件测试,一个计算万年历的简单程序
  14. 复旦大学计算机a类专业,如何看待浙大A类学科39个,全国第一,录取分却比复旦、上交低?...
  15. 硬盘分区整数计算方法
  16. Linux命令之udhcpc,自动获取IP地址
  17. MMDETECTION微调模型
  18. mysql32位的能装在64位的电脑上吗,32位处理器能装64位系统吗
  19. 记一次服务不能正常使用 tmp文件爆满
  20. 新手入门人工智能领域的历程 --干货

热门文章

  1. java中等待所有线程都执行结束
  2. 数据科学家最常用的10种算法
  3. CTE 中字符串拼接
  4. 架构设计文章读后感7
  5. IdentityServer4-EF动态配置Client和对Claims授权(二)
  6. selenium自动化测试多条数据选择第一条
  7. [moka同学笔记]redis练习Demo
  8. glance系列一:glance基础
  9. 怎样通过WireShark抓到的包分析出SIP流程图
  10. NOIP模拟题——dun