我有一个ID列表,我想检查它们是否在employee
表中。
我想只显示表格中没有的那些。
SELECT * FROM EMPLOYEE;
EMPLOYEEID|FIRSTNAME|LASTNAME
1 | JOHN | DOE
2 | JANE | DOE
当我运行下面的sql语句时,我希望得到员工表中不存在的ID。
SELECT '1', '2, '3', '4' AS "X1"FROM
EMPLOYEE WHERE X1 NOT IN (SELECT EMPLOYEEID FROM EMPLOYEE);
答案 0 :(得分:1)
您需要将这些数字转换为子查询,然后选择表中不存在的数字:
with t as
(
select 1 X1 from dual
union
select 2 X1 from dual
union
select 3 X1 from dual
)
SELECT X1 FROM t
WHERE X1 NOT IN (SELECT EMPLOYEEID FROM EMPLOYEE)
如果你有一个很大的ID列表并且你将执行一些更复杂的查询,那么可能值得研究创建temporary table来存储它们,然后使用临时表而不是我建议的子查询。 / p>