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為單目運算子.邏輯運算子的運算元可以為表示式或物件,下面將對它們的...