Oracle Or子句

2022-03-09 17:42 更新

OR是Oracle中的邏輯運(yùn)算符,本教程,將來學(xué)習(xí)如何使用OR運(yùn)算符來組合兩個或更多的布爾表達(dá)式。

Oracle OR運(yùn)算符語法

OR運(yùn)算符組合了布爾表達(dá)式,如果其中一個表達(dá)式為真(true),則返回true。

以下是OR運(yùn)算符的語法:

expression_1 OR expression_2

下表顯示了OR運(yùn)算符在true,false和NULL值之間的結(jié)果。

TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

我們經(jīng)常在SELECT,DELETE和UPDATE語句的WHERE子句中使用OR運(yùn)算符來形成過濾數(shù)據(jù)的條件。

如果在語句中使用多個邏輯運(yùn)算符,則Oracle會在評估NOT和AND運(yùn)算符之后評估OR運(yùn)算符。 但是,可以使用括號更改評估的順序。

Oracle OR運(yùn)算符使用實(shí)例

我們將使用以下的orders表進(jìn)行演示:

1

1. Oracle OR運(yùn)算符組合兩個布爾表達(dá)式的例子

以下示例查找狀態(tài)為掛起(Pending)或取消(Canceled)的訂單,參考以下查詢語句:

SELECT
    order_id,
    customer_id,
    status,
    TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
    orders
WHERE
    status = 'Pending'
    OR status = 'Canceled'
ORDER BY
    order_date DESC;

在這個例子中,語句返回了滿足下列表達(dá)式之一的所有訂單:

status = 'Pending' 
-- 或
status = 'Canceled'

執(zhí)行上面的代碼可以得到以下結(jié)果:

2

2. Oracle OR運(yùn)算符結(jié)合兩個以上的布爾表達(dá)式的例子

我們經(jīng)常使用OR運(yùn)算符來組合兩個以上的布爾表達(dá)式。 例如,以下語句檢索負(fù)責(zé)以下銷售員ID是60,61或62的訂單:

SELECT
    order_id, 
    customer_id, 
    status, 
    salesman_id,
    TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
    orders
WHERE
    salesman_id = 60 
    OR salesman_id = 61 
    OR salesman_id = 62
ORDER BY
    order_date DESC;

執(zhí)行上面的代碼可以得到以下結(jié)果:

3

可以使用IN運(yùn)算符來代替使用多個OR運(yùn)算符,如下例所示:

SELECT
    order_id,
    customer_id,
    status,
    salesman_id,
    TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
    orders
WHERE
    salesman_id IN(60, 61, 62)
ORDER BY
    order_date DESC;

該查詢返回的結(jié)果與使用上面的OR運(yùn)算符返回的結(jié)果相同。

3. Oracle OR運(yùn)算符與AND運(yùn)算符結(jié)合使用的示例

可以將OR運(yùn)算符與其他邏輯運(yùn)算符(如AND和NOT)結(jié)合起來,形成一個條件。 例如,以下查詢將返回屬于客戶ID為44并且已取消(Canceled)或掛起(Pending)狀態(tài)的訂單。參考以下查詢語句:

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;

執(zhí)行上面的代碼可以得到以下結(jié)果:

4


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號