刪除a表中和b表相同的資料

2021-06-16 17:46:13 字數 1342 閱讀 4236

sql

> create table a (

2 bm char(4), --編碼

3 mc varchar2(20) --名稱

4 )5 /

表已建立.

sql> insert into a values('1111','1111');

sql> insert into a values('1112','1111');

sql> insert into a values('1113','1111');

sql> insert into a values('1114','1111');

sql> insert into a values('1115','1111');

sql> create table b as select * from a where 1=2;

表已建立.

sql> insert into b values('1111','1111');

sql> insert into b values('1112','1111');

sql> insert into b values('1113','1111');

sql> insert into b values('1114','1111');

sql> commit;

完全提交.

sql> select * from a;

bm  mc

---- --------------------

1111 1111

1112 1111

1113 1111

1114 1111

1115 1111

sql> select * from b;

bm  mc

---- --------------------

1111 1111

1112 1111

1113 1111

1114 1111

方法一:exists子句

sql> delete from a where exists (select 'x' from b where a.bm=b.bm and a.mc=b.mc);

刪除4個記錄.

where條件:如果兩個表中都擁有相同欄位的主鍵(primary key),則只需比較兩個主鍵就可以了

方法二:in子句

sql> delete from a where (bm,mc) in (select bm,mc from b);

刪除4個記錄.

sql> select * from a;

bm  mc

---- --------------------

1115 1111

刪除a表中和b表相同的資料

軟體環境 1 windows nt4.0 oracle 8.0.4 2 oracle安裝路徑為 c orant 問題提出 在做資料轉儲業務的時候,如果發生操作錯誤,有可能出現主表和副表中都有同一種資料,這樣結算的結果就有可能發生錯誤。實現方法 sql create table a 2 bm char...

資料結構 刪除鍊錶相同元素

灰灰考研 2017華科計院 假設帶頭結點的單鏈表a,b為有序遞增表,單鏈表的型別定義如下 typeddf struct lnode lnode,linklist 編寫演算法voiddelete linklist a,linklist b 從有序表 a 中刪除所有和有序表 b 中元素相同的結點。inc...

刪除鍊錶A中與鍊錶B結點相同的結點

題目描述 有兩串鍊錶表示為a和b,刪除鍊錶a中的結點,滿足刪除條件的結點是該結點與鍊錶b中某結點的值相同。如下 include using namespace std typedef struct list plist int deletenode plist plist void createli...