分享
最近做乙個資料庫的資料匯入功能,發現聯合主鍵約束導致不能匯入,原因是源表中有重複資料,但是源表中又沒有主鍵,很是麻煩。經過努力終於解決了,現在就來和大家分享一下,有更好的辦法的可以相互交流。
有重複資料主要有一下幾種情況:
1.存在兩條完全相同的紀錄
這是最簡單的一種情況,用關鍵字distinct就可以去掉
example: select distinct * from table(表名) where (條件)
2.存在部分字段相同的紀錄(有主鍵id即唯一鍵)
如果是這種情況的話用distinct是過濾不了的,這就要用到主鍵id的唯一性特點及group by分組
example:
select * from table where id in (select max(id) from table group by [去除重複的欄位名列表,....])
3.沒有唯一鍵id
example:
select identity(int1,1) as id,* into newtable(臨時表) from table
select * from newtable where id in (select max(id) from newtable group by [去除重複的欄位名列表,....])
drop table newtable
sql 去除重複列(行)
最近做乙個資料庫的資料匯入功能,發現聯合主鍵約束導致不能匯入,原因是源表中有重複資料,但是源表中又沒有主鍵,很是麻煩。經過努力終於解決了,現在就來和大家分享一下,有更好的辦法的可以相互交流。有重複資料主要有一下幾種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以...
sql去除重複列(行)
最近做乙個資料庫的資料匯入功能,發現聯合主鍵約束導致不能匯入,原因是源表中有重複資料,但是源表中又沒有主鍵,很是麻煩。經過努力終於解決了,現在就來和大家分享一下,有更好的辦法的可以相互交流。有重複資料主要有一下幾種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以...
sqlserver去除重複列 行
最近做乙個資料庫的資料匯入功能,發現聯合主鍵約束導致不能匯入,原因是源表中有重複資料,但是源表中又沒有主鍵,很是麻煩。經過努力終於解決了,現在就來和大家分享一下,有更好的辦法的可以相互交流。有重複資料主要有一下幾種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以...