在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
。