oracle邏輯運算子優先順序

2021-08-30 17:06:50 字數 1279 閱讀 2721

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,也即在1500到3000範圍的員工,相當於:select * from emp where sal between 1500 and 3000;

結合到前面所列出的各類運算子,在這裡彙總一下oracle中所有運算子的優先順序

運算子級別

算術運算子(即『+』,『-』,『*』,『/』)

1連線運算子(即『||』)

2比較運算子(即『>』,『>=』,『<』,『<=』,『<>』)

3is [not] null,[not] like,[not] in

4[not] between-and

5not

6and 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』;

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

sql 邏輯運算子 優先順序

select from tl documentation where storehouse id 2 orcustomer id 2 andproduct id 20 order byid desc limit0,30 以下列表顯示了操作符優先順序的由低到高的順序。排列在同一行的操作符具有相同的優先...

sql 邏輯運算子 優先順序

select from tl documentation where storehouse id 2 orcustomer id 2 andproduct id 20 order byid desc limit0,30以下列表顯示了操作符優先順序的由低到高的順序。排列在同一行的操作符具有相同的優先順...

python邏輯運算子,計算優先順序

2.邏輯運算子的優先順序 python中也支援邏輯運算,但python中邏輯運算子的功能與其它語言有所不同.python中分別使用 or and not 這三個單詞作為邏運算 或 與 非 的運算子,其中or與and為雙目運算子,not為單目運算子.邏輯運算子的運算元可以為表示式或物件,下面將對它們的...