例項用表結構:
--- 表一
if object_id('test1') is not null drop table test1
create table test1(a varchar(8),b varchar(8))
insert into test1
select 'a1','b1' union all
select 'a2','b2' union all
select 'a3','b3' union all
select 'a3','b3' union all
select 'a4','b4' union all
select 'a4','b4'
結果:a b
a1 b1
a2 b2
a3 b3
a3 b3
a4 b4
a4 b4
-- 表2
if object_id('test2') is not null drop table test2
create table test2(a varchar(8), b varchar(8))
insert into test2
select 'a1','b1' union all
select 'a2','b2' union all
select 'a3','b3'
結果:a b
a1 b1
a2 b2
a3 b3
一、取出2表相同資料:
-- 語句一:
select * from test1
intersect
select * from test2
結果:a b
a1 b1
a2 b2
a3 b3
缺點:無法知道是否有重複的資料。
-- 語句二:
select * from test1 where checksum(a) in
(select checksum(a) from test2)
結果:a b
a1 b1
a2 b2
a3 b3
a3 b3
語句三:
select * from test1 o left join test2 t
on o.a = t .a
結果:a b a b
-----------------
a1 b1
a1b1 a2
b2a2
b2 a3
b3a3
b3 a3
b3a3
b3 a4
b4null
null a4
b4null
null
語句四:
select * from test1 o right join test2 t
on o.a = t .a
結果:a b a b
----------------- a1
b1a1
b1a2
b2a2
b2a3
b3a3
b3a3
b3a3
b3
二、取出2表不同的資料
-- 語句一:
select * from test1
except
select * from test2
結果:a b
a4 b4
-- 語句二:
select * from test1 where checksum(a) not in
(select checksum(a) from test2)
結果:a b
a4 b4
a4 b4
表中重複資料的處理
表中重複資料的處理 說明 tabname為有重複資料的表名,tabname new為新建的表名 1.create table tabname new 2.alter table tabname new add constraints primary key 唯一索引列 constraint tabl...
判斷List列表中重複資料的個數
判斷list列表中重複資料的個數.很簡單乙個邏輯,寫下留做筆記 public class listrepeat listlist new arraylist mapmap new hashmap for string value stringbuf collections.frequency col...
oracle刪除表中的重複資料
遇到這麼個問題,有一張表test,其中有id,name,age,address,等字段,其中id值主鍵,現在要刪除表test中name和age,相同的重複資料,只保留一條即可。這是乙個比較常用的sql但是我一下沒寫出來,回頭想想這就是乙個簡單的巢狀子查詢的例項。sql delete test a w...