易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL 如何删除数据表中重复的数据?

【引用:猛犸技术文章摘要

经测试,方法二可成功删除数据,方法一、三 删除数据失败。请路过的朋友,指点迷津。。。
问题:一个表有自增的ID
列,表中有一些记录内容重复,也就是说这些记录除了ID
不同之外,其他的信息都相同。需要把重复的记录保留一条,剩下的删除
 
方法一:还是2000
年的时候一位Oracle
DBA
叫m.l发给技术部全体的(可惜原始邮件找不到了,要不然我当文物发给大家):
delete from Score
where [sid] not in (
select min([sid])
from Score
group by [sid],[sname],[score])
 
方法二:z.ben在网络上搜出来的:
--
删除相同城市下的相同行政区
delete a from Score a
where a.sid>(
select min(sid) from Score b
where a.sname=b.sname and a.score=b.score)
方法三:使用sql
2005
新增的row_number()
功能和with
关键字,我是从赵立东那里学来的。
print('删除Score表中重复的记录')
;WITH a AS (
SELECT ROW_NUMBER() OVER (PARTITION BY [sid],[sname],[score]
ORDER BY [sid],[sname],[score]) AS rn,*
from Score
)
delete from a WHERE a.rn>1
 
------------------------------------------------------------------------------
附录:数据库表脚本
USE [DBtest]
GO
/****** Object:  Table [dbo].[Score]    Script Date: 01/13/2010 23:47:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Score](
    [sid] [int] IDENTITY(1,1) NOT NULL,
    [sname] [nchar](10) NOT NULL,
    [score] [nchar](10) NOT NULL,
 CONSTRAINT [PK_Score] PRIMARY KEY CLUSTERED
(
    [sid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
 
数据填充:
1
 aa        
bb        

 bb        
cc        
3
 cc        
dd   


相关文档:

SQL函数库

1.字符串函数 :
datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
length(expression,variable)指定字符串或变量名称的长度。
substring(expression,start,length) 不多说了,取子串
right(char_expr,int_expr) 返回字符串右边int_expr个字符
concat(str1,str2,...)返回来自于参数连结的字符串。dat ......

SQL索引高级应用

--结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
select
  o.name as 表名,
  i.name as 索引名,
  c.name as 列名,
  i.type_desc as 类型描述,
  is_primary_key as 主键约束,
  is_unique_constraint as 唯一约束,
  is_disable ......

SQL Server 2008的四项新特性

在SQL Server 2008中,不仅对原有性能进行了改进,还添加了许多新特性,比如新添了数据集成功能,改进了分析服务,报告服务,以及Office集成等等。
  SQL Server集成服务
 
 SSIS(SQL Server集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩、转换和加载)包。SSIS代替了SQL
2000的DTS。整合服务功能既包 ......

SQL Server 2008和微软数据平台开发

Microsoft SQL Server
2008和Microsoft数据平台为开发人员提供了一个综合的编程架构,用于创建针对移动设备、桌面电脑、Web服务器,和企业服务器的基于数据的解
决方案。这个数据编程环境将数据访问和管理集成到一个应用程序的业务逻辑中,从而提高了开发人员的生产力。它提供了一个用于对异构数据源的数据访问和管理
的 ......

五种提高 SQL 性能的方法

本文节选自MSDN的文章《五种提高 SQL 性能的方法》,提出如何提高基于SQL Server应用程序的运行效率,非常值得推荐。对一些Traffic很高的应用系统而言,如何提高和改进SQL指令,是非常重要的,也是一个很好的突破点。
*文章主要包括如下一些内容(如感兴趣,请直接访问下面的URL阅读完整的中英文文档):
1, 从 INSE ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号