oracle中逻辑运算符(not,and,or)及其优先级
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,也即在1500到3000范圍的員工,相當于: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中逻辑运算符(not,and,or)及其优先级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: osip状态机分析
- 下一篇: liunx驱动----异步通知