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