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

しかし、上記の3つのステートメントを1つの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 に答える