在本教學中將學習如何使用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
運算子。 但是,可以使用括號來更改評估的順序。
請參閱範例資料庫中的以下訂單(orders
)表:
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
執行上面查詢語句,得到以下結果:
可以使用多個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;
執行上面查詢語句,得到以下結果 -
可以將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
運算子來組合兩個或更多的布林表示式。