69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

Oracle Or子句

oracle or子句

or是oracle中的邏輯運算符,本教程,將來學習如何使用or運算符來組合兩個或更多的布爾表達式。

 

oracle or運算符語法

or運算符組合了布爾表達式,如果其中一個表達式為真(true),則返回true。

以下是or運算符的語法:

expression_1 and expression_2 

下表顯示了or運算符在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運算符來形成過濾數(shù)據(jù)的條件。

如果在語句中使用多個邏輯運算符,則oracle會在評估not和and運算符之后評估or運算符。 但是,可以使用括號更改評估的順序。

 

oracle or運算符使用實例

我們將使用以下的orders表進行演示:

1. oracle or運算符組合兩個布爾表達式的例子

以下示例查找狀態(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;

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

status = 'pending'
-- 或
status = 'canceled' 

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

2. oracle or運算符結(jié)合兩個以上的布爾表達式的例子

我們經(jīng)常使用or運算符來組合兩個以上的布爾表達式。 例如,以下語句檢索負責以下銷售員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é)果:

可以使用in運算符來代替使用多個or運算符,如下例所示:

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運算符返回的結(jié)果相同。

3. oracle or運算符與and運算符結(jié)合使用的示例

可以將or運算符與其他邏輯運算符(如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é)果:

下一節(jié):oracle fetch子句

oracle教程

相關(guān)文章