W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Oracle IN 運(yùn)算符可以用來(lái)確定值是否與列表或子查詢中的任何值相匹配,本文就將為大家?guī)?lái) Oracle IN 運(yùn)算符的具體用法。
確定表達(dá)式是否與值列表匹配的 Oracle IN 運(yùn)算符的語(yǔ)法如下所示:
expression [NOT] IN (v1,v2,...)
并且表達(dá)式的語(yǔ)法與子查詢匹配:
expression [NOT] IN (subquery)
在上面語(yǔ)法中,這里將介紹每個(gè)參數(shù)含義:
如果表達(dá)式(expression)的值等于值列表中的任何值或由子查詢返回的結(jié)果集,則 IN 運(yùn)算符返回 true。 否則,它返回 false。
NOT 運(yùn)算符否定 IN 運(yùn)算符的結(jié)果。
以下面的這兩種表為例:
以下語(yǔ)句查找所有銷售員 ID 為54,55和56所負(fù)責(zé)的訂單:
SELECT
order_id,customer_id,status,salesman_id
FROM
orders
WHERE
salesman_id IN (54,55,56)
ORDER BY
order_id;
執(zhí)行以上代碼可以得到以下結(jié)果:
如上圖中所示,查詢結(jié)果集返回了 salesman_id 列中值為54,55或56的所有訂單。同樣,以下示例將檢索狀態(tài)(status)列的值為"Pending"或"Canceled"的銷售訂單信息:
SELECT
order_id, customer_id, status, salesman_id
FROM
orders
WHERE
status IN('Pending','Canceled')
ORDER BY
order_id;
執(zhí)行上面查詢語(yǔ)句返回狀態(tài)(status)列的值為"Pending"或"Canceled"的銷售訂單信息,如下所示:
這個(gè)示例演示如何查找狀態(tài)(status)不是"Shipped"或"Canceled"的訂單:
SELECT
order_id, customer_id, status, salesman_id
FROM
orders
WHERE
status NOT IN( 'Shipped', 'Canceled')
ORDER BY
order_id;
執(zhí)行上面查詢語(yǔ)句返回狀態(tài)(status)列的值不是"Shipped"或"Canceled"的銷售訂單信息,如下所示:
以下示例返回負(fù)責(zé)訂單狀態(tài)為取消(Canceled)的銷售員的ID,名字和姓氏,參考以下查詢語(yǔ)句
SELECT employee_id, first_name, last_name
FROM employees
WHERE
employee_id IN(
SELECT
DISTINCT salesman_id
FROM
orders
WHERE
status = 'Canceled'
)
ORDER BY first_Name;
執(zhí)行上面查詢語(yǔ)句,得到以下結(jié)果:
在這個(gè)例子中,子查詢首先執(zhí)行并返回一個(gè)銷售員ID列表:
SELECT
DISTINCT salesman_id
FROM
orders
WHERE
status = 'Canceled'
執(zhí)行上面查詢語(yǔ)句,得到以下結(jié)果
這些銷售人員id用于外部查詢,查找所有員工的ID與銷售員ID列表中的任何id相同。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: