在Oracle中不使用in语句删除两条记录

时间:2015-04-26 18:20:39

标签: sql oracle

尝试使用Oracle中的以下查询删除两条记录。

DELETE FROM EMPLOYEE WHERE EMP_ID=1 AND EMP_ID=2;

我知道我们可以使用EMP_ID IN(1,2)语句删除两条记录,但为什么我们不能通过使用两个不同的EMP_ID来删除两条记录?

4 个答案:

答案 0 :(得分:3)

您需要使用OR代替AND

DELETE FROM EMPLOYEE WHERE EMP_ID=1 OR EMP_ID=2;

请注意,EMP_ID = 1 AND EMP_ID = 2与任何记录都不匹配,这就是为什么你会感到困惑。 IN子句与OR非常相似,这就是为什么你的查询与IN子句一起工作的原因,因为它与EMP_ID = 1或EMP_ID = 2匹配;

答案 1 :(得分:1)

尝试或判断:)

EMP_ID=1 OR EMP_ID=2

答案 2 :(得分:1)

您可以使用IN条件:

DELETE FROM EMPLOYEE WHERE EMP_ID IN(1, 2);

或使用OR运算符代替AND

DELETE FROM EMPLOYEE WHERE EMP_ID=1 OR EMP_ID=2;

答案 3 :(得分:0)

以下代码应该足够了:

DELETE
FROM   employee 
WHERE  emp_id BETWEEN 1 AND 2