DELETE FROM MYTABLE WHERE ID = 1 and NAME ='xyz';
DELETE FROM MYTABLE WHERE ID = 2 and NAME ='abc';
DELETE FROM MYTABLE WHERE ID = 3 and NAME ='abc';
私は上記の複数の削除ステートメントがあります。少ない文でどのように削除できますか? 100件の削除文を書く必要がありますか?oracleで複数の行を削除する
DELETE FROM MYTABLE WHERE ID = 1 and NAME ='xyz';
DELETE FROM MYTABLE WHERE ID = 2 and NAME ='abc';
DELETE FROM MYTABLE WHERE ID = 3 and NAME ='abc';
私は上記の複数の削除ステートメントがあります。少ない文でどのように削除できますか? 100件の削除文を書く必要がありますか?oracleで複数の行を削除する
あなたがこれを行うことができます:
delete from mytable
where (id, name) in ((1, 'xyz'),
(2, 'abc'),
(3, 'abc'));
あなたはIN
を使用することができます。もちろん
DELETE FROM MYTABLE
WHERE (ID, NAME) IN (SELECT 1 AS ID, 'xyz' AS NAME FROM dual UNION ALL
SELECT 2 AS ID, 'abc' AS NAME FROM dual UNION ALL
SELECT 3 AS ID, 'abc' AS NAME FROM dual);
をサブクエリの内側には、任意の選択(グローバル一時表からインスタンスの)を使用することができます。
DELETE FROM MYTABLE
WHERE ID IN (1, 2, 3) AND NAME IN ('XYZ', 'ABC');
をあなたのidフィールドが一意である場合は、使用します。
DELETE FROM MYTABLE WHERE ID IN (1, 2, 3);
答えの最初の部分は必ずしも正確ではありません。 'Id = 1'と' Name = 'abc''があなたの基準を満たし、彼の基準を満たさない行。 – JBC
ありがとうございます!それは動作します。 – PeaceIsPearl