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’;

一般我們即使我們要表達第一個語句所要表達的意思,為了避免誤解,都不采取第一種寫法,而是用括號來表明我們要先算后面的部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM