博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLServer2000删除重复数据
阅读量:6040 次
发布时间:2019-06-20

本文共 1256 字,大约阅读时间需要 4 分钟。

*******************************************

SQLServer2000删除重复数据(总结)
*******************************************
 
一、具有主键的情况 
 
I.具有唯一性的字段id(为唯一主键) 

delete
  用户表    
where
  id  
not
  
in
    
(  
select
  
max
(id)  
from
  用户表  
group
  
by
  col1,col2,col3...  
)  

group  by  子句后跟的字段就是你用来判断重复的条件,如只有col1,  
那么只要col1字段内容相同即表示记录相同。  
 
II.具有联合主键 
 
假设col1+','+col2+','...col5  为联合主键

(找出相同记录)

select
  
*
  
from
    用户表  
where
  col1
+
'
,
'
+
col2
+
'
,
'
...col5  
in
  
(  
  
select
  
max
(col1
+
'
,
'
+
col2
+
'
,
'
...col5)  
from
  用户表    
  
group
  
by
  col1,col2,col3,col4
  
having
  
count
(
*
)
>
1
     
)  

group  by  子句后跟的字段就是你用来判断重复的条件,  
如只有col1,那么只要col1字段内容相同即表示记录相同。  
 
或者:
(找出相同记录)

select
  
*
  
from
  用户表  
where
  
exists
  (
select
  
1
  
from
  用户表  x  
where
  用户表.col1 
=
  x.col1  
and
    
用户表.col2
=
  x.col2  
group
  
by
  x.col1,x.col2  
having
  
count
(
*
)  
>
1
)  

 
III:判断所有的字段 

   
select
  
*
  
into
  #aa  
from
  用户表  
group
  
by
  id1,id2,....  
   
delete
  用户表    
   
insert
  
into
  用户表 
select
  
*
  
from
  #aa  

 
二、没有主键的情况  
 
I.用临时表实现 

select
  
identity
(
int
,
1
,
1
)  
as
  id,
*
  
into
  #
temp
  
from
  用户表  
delete
  #
temp
    
where
  id  
not
  
in
    
(  
   
select
  
max
(id)  
from
  #  
group
  
by
  col1,col2,col3...  
)  
delete
  用户表  ta  
inset  
into
  ta(...) 
select
  .....  
from
  #
temp
  

 

II.用改变表结构(加一个唯一字段)来实现

alter
  用户表  
add
    newfield  
int
  
identity
(
1
,
1
)  
delete
  用户表  
where
  newfield  
not
  
in
  
(  
select
  
min
(newfield)  
from
  用户表  
group
  
by
  除newfield外的所有字段  
)  
alter
  用户表  
drop
  
column
  newfield

转载地址:http://umrhx.baihongyu.com/

你可能感兴趣的文章
halcon算子介绍
查看>>
挖掘你不知道的windowsxp中的带宽潜能
查看>>
Software Engineering 招聘要求
查看>>
【转载】InstallAnyWhere自动化制作安装包的知识
查看>>
69、iSCSI共享存储配置实战
查看>>
文本编程
查看>>
乔布斯走了。你还期待苹果吗?
查看>>
优先级
查看>>
Tomcat与Web服务器、应用服务器的关系
查看>>
用DFS实现全排列 & 八皇后问题
查看>>
深度学习博客
查看>>
Android总结篇系列:Android Service
查看>>
Android dumpsys命令的使用
查看>>
Linux Kernel系列一:开篇和Kernel启动概要
查看>>
BZOJ 2756: [SCOI2012]奇怪的游戏 网络流/二分
查看>>
master + worker模式的node多核解决框架——node-cluster
查看>>
Android如何实现超级棒的沉浸式体验
查看>>
使用node打造自己的命令行工具方法教程
查看>>
Express代理中间件问题与解决方案
查看>>
||和&&返回什么?
查看>>