刪除表中某列有重復的紀錄
来源:互联网 发布:智能客服系统 知乎 编辑:程序博客网 时间:2024/05/16 11:05
比如表AllBook,需要得到ISBN沒有重復的紀錄
ISBN BookName
111 111
111 111
222 222
222 222
222 222
要篩選得到,我們將它放到tempAllBook中
ISBN BookName
111 111
222 222
我到百度搜了一下,也有好些方法,
(1).使用distinct关键字,好像只能得到一列:select distinct ISBN into tempAllBook from AllBook
(2)如果表沒有identity 列,可先給表加個identity的ID 列
delete from AllBook where ID in (select max(ID) from AllBook group by BookName having count(*)>1)
(3)如果表沒有identity 列,可先給表加個identity的ID 列
delete from AllBook where id not in (select max(id) from AllBook group by BookName )
。。。。。。
因手頭有一些數據需要做這樣的處理,所以我就用這些方法都試驗了一下,發現效果都不是很好,也許數據本身有一些錯誤導致了查詢語句錯誤而未得到最后想要的結果。
後來考慮了一下,我個人認爲,如果需要做這樣的過濾操作的,往往面對的是一些比較重要的數據,或者需要精確結果的數據,我們不妨使用比較笨的方法,畢竟也不是經常的做這樣的過濾,我是這樣做的:
(1):首先利用distinct关键字得到沒有重復ISBN號放到表tempAllBook中
select distinct ISBN into tempAllBook from AllBook
(2):修改tempAllBook的表結構,增加BookName列(如果還有其他列的話做法相同),然後使用Update 語句拷貝AllBook的信息到tempAllBook
Update tempAllBook
Set BookName=AllBook.BookName
from AllBook
where tempAllBook .ISBN=AllBook.ISBN
經過試驗,這種方法是比較準確的。
- 刪除表中某列有重復的紀錄
- 刪除目錄
- Oracle中刪除主外鍵表中不存在的記錄
- oracle中刪除重復的記錄,只剩一條
- 在datatable中查找,刪除,添加紀錄
- 刪除已不存的的DS对象
- 刪除文件夾的函数
- GridView中ButtonLinkField的刪除提示
- oracle中刪除lock的方法
- oracle 在刪除表空間之前把表空間對應的文件刪除的處理方法
- oracle 在刪除表空間之前把表空間對應的文件刪除的處理方法
- 除的小不如除的巧!
- 通過輸入數據庫名,然後刪除數據庫裡除5條外的所有記錄
- Matlab点除和除的区别
- Matlab点除和除的区别
- matlab 点除与除的区别
- HttpModule的移除
- 监听器的移除
- STL在线电子书,非常好
- Java SE 6.0新特性体验
- 动网问题集-4、动网论坛首页各部位设置说明
- JavaScript 表格排序 -《JavaScript高级程序设计》源码
- python for s60 之音频播放
- 刪除表中某列有重復的紀錄
- Java平台的AJAX工具--GWT
- 华为路由器qos car+nat+dhcp+vlan配置心得
- 如何在托管环境下释放COM对象
- java Mustang 的脚本活力
- log explorer讀取日志注意事項
- 关于vc调试出现One or more breakpoints cannot be set and have been disabled解决方法。
- C#图片处理之:给你的图片打上LOGO
- ASP.net:利用RowFilter属性,将一个DataSet绑定到两个DataGridhttp://www.ninedns.com/asp.net/2007430223347.html