4

我知道如何使用如下语句删除一组行:

DELETE FROM my_table WHERE id=23 AND year=2012 AND value=16
DELETE FROM my_table WHERE id=17 AND year=2012 AND value=16
DELETE FROM my_table WHERE id=64 AND year=2012 AND value=16

但我想将上述三个语句组合成一个 DELETE,其中 id 为 23、17 或 64。

在 Oracle SQL 中执行此操作的语法是什么?

4

4 回答 4

10

您可以使用 SQLIN关键字。例如:

DELETE FROM my_table WHERE id IN (23, 17, 64) AND year=2012 AND value=16

注意: Oracle 在一个列表中限制为 1,000 个项目。

于 2013-02-04T16:56:31.237 回答
5
DELETE FROM my_table 
WHERE id in (17, 23, 64) AND year=2012 AND value=16
于 2013-02-04T16:56:22.563 回答
3

您可以链接AND/OR条件以达到相同的效果。在这种情况下,一个简单的IN就可以解决您的目的。

DELETE FROM my_table WHERE id IN (23, 17, 64) AND year=2012 AND value=16
于 2013-02-04T16:57:13.680 回答
1

怎么样:

DELETE FROM my_table WHERE (id=23 or id=17 or id=64) AND year=2012 AND value=16
于 2013-02-04T16:56:50.273 回答