`

oracle逻辑运算符优先级

阅读更多
oracle中逻辑运算符(not,and,or)及其优先级
2008-12-05 15:06

Oracle的逻辑运算符也是用在SQL语句中必不可少的因素,一共有三个

逻辑运算符

意义

and

双值运算符,如果左右两个条件都为真,则得到的值就为真

or

双值运算符,只要左右两个条件有一个为真,则得到的值就为真

not

单指运算符,如果原条件为真,则得到真,如果元条件为假,反之如果原条件为假,则结果为真

下面使一些例子:

Select * from emp where sal > 2000 and job = ‘SALESMAN’;

寻找那些工资高于2000的且职位为销售的职员。

Select * from emp where job = ‘CLERK’ or deptno = 20;

寻找那些工作为CLERK或者所在部门标号为20的职员的列表

Select * from emp where not (sal > 3000 or sal < 1500);

寻找那些工资既不大于3000也不小于1500,也即在15003000范围的员工,相当于:select * from emp where sal between 1500 and 3000;

结合到前面所列出的各类运算符,在这里汇总一下oracle中所有运算符的优先级

运算符

级别

算术运算符(即‘+,-’,‘*,/)

1

连接运算符(即‘||’)

2

比较运算符(即‘>’,‘>=’,‘<’,‘<=’,‘<>’)

3

Is [not] null,[not] like,[not] in

4

[not] between-and

5

not

6

and

or

通常使用‘()’可以改变运算符的优先级。

需要注意的是and的优先级要优于or,也就是说

下面的语句

Select * from emp where sal < 1500 or sal >= 2000 and job = ‘ANALYST’;

等价于

Select * from emp where sal < 1500 or (sal >= 2000 and job = ‘ANALYST’);

而不是你所预期的

Select * from emp where (sal < 1500 or sal >= 2000) and job = ‘ANALYST’;

一般我们即使我们要表达第一个语句所要表达的意思,为了避免误解,都不采取第一种写法,而是用括号来表明我们要先算后面的部分。

分享到:
评论

相关推荐

    oracle逻辑运算符与其优先级简介

    Oracle的逻辑运算符也是用在SQL语句中必不可少的因素,一共有三个 逻辑运算符 意义 and 双值运算符,如果左右两个条件都为真,则得到的值就为真 or 双值运算符,只要左右两个条件有一个为真,则...

    Java笔记(一)——基础语法

    文章目录Java 概述及版本HelloWorld变量常量数据类型String运算符算术运算符位运算符逻辑运算符关系运算符关系优先级关键字和语句方法流程控制数组用户输入操作 Java 概述及版本 Java 是由 Sun Microsystems 公司于 ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    10.4.3 CONNECT_BY_ROOT运算符 281 10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数 284 10.4.5 CONNECT_BY_ISLEAF伪列 287 10.5 小结 291 第11章 半联结和反联结 292 11.1 半联结 292 11.2 半联结执行计划 300 ...

    C程序设计语言(第2版·新版中文)

    2.6 关系运算符与逻辑运算符 2.7 类型转换 2.8 自增运算符与自减运算符 2.9 按位运算符 2.10 赋值运算符与表达式 2.11 条件表达式 2.12 运算符优先级与求值次序 第3章 控制流 3.1 语句与程序块 3.2 if-else...

    C# 课程设计案例精编

    1.5.8 运算符优先级和结合性 25 第2章 C#?程序设计 27 2.1 C#?控制台应用程序 27 2.1.1 创建工程 27 2.1.2 修改代码 28 2.1.3 运行程序 29 2.2 C# Windows应用程序 30 2.2.1 新建工程 30 2.2.2 添加新的窗口 31 ...

    轻松学C#(图解版)

    9.5.1 逻辑运算符重载的简单方式 167 9.5.2 使用短路运算符 169 9.6 转换运算符 171 9.7 注意问题 173 9.7.1 重载后运算符的优先级 173 9.7.2 不能重载的运算符 174 9.8 小结 175 9.9 习题 175 第10章 接口 178 ...

    2009达内SQL学习笔记

    七、高级检索(逻辑运算符): 通常我们需要根据多个条件检索数据。可以使用AND或OR、NOT等连接相关的条件 计算次序可以通过圆括号()来明确地分组。不要过分依赖默认计算次序,使用圆括号()没有坏处,它能消除二义性...

    疯狂JAVA讲义

    3.7.6 逻辑运算符 67 3.7.7 三目运算符 68 3.7.8 运算符的结合性和优先级 69 3.8 本章小结 70 本章练习 70 第4章 流程控制和数组 71 4.1 顺序结构 72 4.2 分支结构 72 4.2.1 if条件语句 72 4.2.2 switch...

    php网络开发完全手册

    2.5.8 运算符的优先级 41 2.6 特殊的全局变量的介绍 42 2.7 文件包含 42 2.7.1 使用require和require_once语句 2.7.1 进行文件包含 42 2.7.2 使用include与include_once语句 2.7.2 进行文件包含 44 2.8 小结 45 第3...

    整理后java开发全套达内学习笔记(含练习)

    instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。返回 boolean 值。 interface (关键字) 接口 ['intәfeis] invoke vt.调用 [in'vәuk]' ( invocation [,invәu'keiʃәn]) Iterator ...

    JAVA面试题最全集

    85.Oracle中SGA是什么? 86.web servers是什么? 87.UNIX中QT是什么意思? 88.在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中IDL是什么? 92.ISO9000和CMM是什么...

    javaSE代码实例

    3.9 括号及运算符间的优先级关系 38 3.10 常用数学工具包——java.lang.Math类 39 3.10.1 数学常量 39 3.10.2 常用数学函数 40 3.11 小结 41 第4章 流程控制——Java世界的航行舵手 42 4.1 if条件语句...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例127 查看和修改线程优先级 165 实例128 使用守护线程 166 实例129 休眠当前线程 167 实例130 终止指定线程 169 实例131 线程的插队运行 170 6.2 线程的同步 171 实例132 非同步的数据读写 171 实例133 使用方法...

    SQL语法大全

    SQL语法大全 SQL语法大全 1. ASP与Access数据库连接: dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access ...

    超级有影响力霸气的Java面试题大全文档

    &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、HashMap和Hashtable的区别。 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空...

Global site tag (gtag.js) - Google Analytics