分享SQL Server删除重复行的6个方法_MsSql

1.如果有ID字段,就是具有唯一性的字段

复制代码 代码如下:

delect table where id not in (
select max(id) from table group by col1,col2,col3...
)

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

2. 如果是判断所有字段也可以这样

复制代码 代码如下:

select * into #aa from table group by id1,id2,....
delete table
insert into table
select * from #aa

3. 没有ID的情况

复制代码 代码如下:

select identity(int,1,1) as id,* into #temp from tabel
delect # where id not in (
select max(id) from # group by col1,col2,col3...)
delect table
inset into table(...)
select ..... from #temp

4. col1+','+col2+','...col5 联合主键

复制代码 代码如下:

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

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

5.

复制代码 代码如下:

select identity(int,1,1) as id,* into #temp from tabel
select * from #temp where id in (
select max(id) from #emp where having count(*)>1 group by col1,col2,col3...)

6.

复制代码 代码如下:

select distinct * into #temp from tablename
delete tablename
go
insert tablename select * from #temp Sqlclub
go
drop table #temp

以上就是SQL Server删除重复行的方法介绍。

时间: 2024-11-10 08:01:12

分享SQL Server删除重复行的6个方法_MsSql的相关文章

分享SQL Server删除重复行的6个方法

1.如果有ID字段,就是具有唯一性的字段 复制代码 代码如下: delect table where id not in ( select max(id) from table group by col1,col2,col3... ) group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同. 2. 如果是判断所有字段也可以这样 复制代码 代码如下: select * into #aa from table group by id1,i

SQL Server 删除重复记录的几种方法

  例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 del

SQL Server无日志恢复数据库(2种方法)_MsSql

SQL Server是一个关系数据库管理系统,应用很广泛,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,又由于SQL Server数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复.下文就为大家介绍一种恢复数据库日志文件的方法. 解决方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先

SQL SERVER 删除重复内容行_MsSql

对于重复行删除的问题,网上很难找到合适的答案,问问题的不少,但在搜索引擎中草草地看了一下前面的记录都没有解决方案. 其实这个问题可以很华丽的解决. 1.如果这张表没有主键(或者相同的行并没有不相同的内容列),则需要新建一个自增列,用来区分不同列.例如 复制代码 代码如下: alter table [tablename] add [TID] int IDENTITY(1,1) 就是增加一个自增量的临时列TID. 为啥要用SQL语句?如果超过几十万行的话用SQL SERVER企业管理器的设计界面修改

SQL SERVER 删除重复内容行

对于重复行删除的问题,网上很难找到合适的答案,问问题的不少,但在搜索引擎中草草地看了一下前面的记录都没有解决方案. 其实这个问题可以很华丽的解决. 1.如果这张表没有主键(或者相同的行并没有不相同的内容列),则需要新建一个自增列,用来区分不同列.例如 复制代码 代码如下: alter table [tablename] add [TID] int IDENTITY(1,1) 就是增加一个自增量的临时列TID. 为啥要用SQL语句?如果超过几十万行的话用SQL SERVER企业管理器的设计界面修改

SQL Server中删除重复数据的几个方法_MsSql

方法一 复制代码 代码如下: declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount

SQL Server导入、导出、备份数据方法_MsSql

一.导出导入SQL Server里某个数据库 1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库. 2.备份 选数据库-完全, 目的 备份到 按添加按钮 文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak) 重写 选重写现有媒体 最后按确定按钮. 如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输. 3.通过FTP或者remote desktop或者pcanywhere等方法 把第二

在SQL Server中迁移数据的几种方法_MsSql

1.通过工具"DTS"的设计器进行导入或者导出 DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不 多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动.在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很

配置 SQL Server 2005 以允许远程连接的方法_MsSql

例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: 复制代码 代码如下: Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误.连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败. 如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题.默认情况下,SQL Server 2005 Express Edition 和 SQ