天天看點

oracle and和or的執行順序,Oracle And子句

在本教程中将學習如何使用Oracle AND運算符來組合兩個或更多的布爾表達式。

Oracle AND運算符簡介

AND運算符是一個邏輯運算符,它組合了布爾表達式,如果兩個表達式都為真,則傳回true。 如果其中一個表達式為假,則AND運算符傳回false。

AND運算符的文法如下所示:

expression_1 AND expression_2

下表說明了使用AND運算符合并true,false和NULL值時的結果 -

TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

FALSE

NULL

NULL

FALSE

NULL

通常,在SELECT,DELETE和UPDATE語句的WHERE子句中使用AND來形成比對資料的條件。 另外,在JOIN子句的謂詞中使用AND運算符來形成連接配接條件。

在聲明中使用多個邏輯運算符時,Oracle始終首先評估AND運算符。 但是,可以使用括号來更改評估的順序。

Oracle AND算符的例子

請參閱示例資料庫中的以下訂單(orders)表:

oracle and和or的執行順序,Oracle And子句

1. Oracle AND結合兩個布爾表達式的例子

以下示例查找具有客戶編号為2的那些狀态為挂起(Pending)的訂單:

SELECT order_id, customer_id, status, TO_CHAR(order_date,'YYYY-MM-DD') AS order_date

FROM orders

WHERE status = 'Pending' AND customer_id = 2

ORDER BY order_date;

在這個例子中,查詢傳回了滿足兩個表達式的所有訂單資訊,即:

status = 'Pending'

customer_id = 2

執行上面查詢語句,得到以下結果:

oracle and和or的執行順序,Oracle And子句

2. Oracle AND結合兩個以上的布爾表達式的例子

可以使用多個AND運算符來組合布爾表達式。

例如,以下語句檢索滿足以下所有條件的訂單:

在2017年放置。

負責售貨員編号為60。

有發貨狀态。

參考以下查詢語句 -

SELECT

order_id,

customer_id,

status,

TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date

FROM

orders

WHERE

status = 'Shipped'

AND salesman_id = 60

AND EXTRACT(YEAR FROM order_date) = 2017

ORDER BY

order_date;

執行上面查詢語句,得到以下結果 -

oracle and和or的執行順序,Oracle And子句

3. Oracle AND與OR運算符結合示例

可以将AND運算符與其他邏輯運算符(如OR和NOT)組合,以形成一個條件。

例如,以下查詢查找客戶ID為44的訂單,并且狀态已取消(Canceled) 或 待定(Pending)。參考以下實作語句 -

SELECT

order_id,

customer_id,

status,

salesman_id,

TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date

FROM

orders

WHERE

(status = 'Canceled' OR status = 'Pending')

AND customer_id = 44

ORDER BY

order_date;

執行上面查詢語句,得到以下結果 -

oracle and和or的執行順序,Oracle And子句

在本教程中,我們已學習如何使用Oracle AND運算符來組合兩個或更多的布爾表達式。

¥ 我要打賞

糾錯/補充

收藏

加QQ群啦,易百教程官方技術學習群

注意:建議每個人選自己的技術方向加群,同一個QQ最多限加 3 個群。