在Oracle數據庫中,NOT IN
子句用于過濾掉在指定列表或子查詢中出現的數據行。其基本語法結構如下:
SELECT column_name(s)
FROM table_name
WHERE column_name NOT IN (SELECT column_name(s) FROM table_name WHERE condition);
column_name(s)
:要查詢的列名,可以是一個或多個列名的組合。table_name
:要從中查詢數據的表名。condition
:子查詢的條件,用于確定哪些行應該被包括在子查詢結果中。以下是一個簡單的示例:
-- 假設有一個名為employees的表,其中包含以下列:employee_id, first_name, last_name, department_id。
-- 我們想要查詢所有不在銷售部門工作的員工的姓名和ID。
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id NOT IN (
SELECT department_id
FROM employees
WHERE department_id = 'Sales'
);
在這個示例中,子查詢首先從employees
表中選擇了所有在銷售部門工作的員工的department_id
。然后,主查詢從employees
表中選擇了所有不在這個列表中的員工的employee_id
、first_name
和last_name
。