SQL语句删除2条重复数据一条保留一条

-- 任意的测试表

复制代码 代码如下:

CREATE TABLE test_delete(

name varchar(10),

value INT

);

go

-- 张三100 与 王五80 是有重复的

INSERT INTO test_delete

SELECT '张三', 100

UNION ALL SELECT '张三', 100

UNION ALL SELECT '李四', 80

UNION ALL SELECT '王五', 80

UNION ALL SELECT '王五', 80

UNION ALL SELECT '赵六', 90

UNION ALL SELECT '赵六', 70

go

-- 测试检索数据

SELECT

ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,

name,

value

FROM

test_delete

no name value

-------------------- ---------- -----------

1 李四 80

1 王五 80

2 王五 80

1 张三 100

2 张三 100

1 赵六 70

1 赵六 90

--创建视图

复制代码 代码如下:

CREATE VIEW tmp_view AS

SELECT

ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,

name,

value

FROM

test_delete

--删除数据

1> DELETE FROM tmp_view WHERE no != 1

2> go

(2 行受影响)

-- 核对结果

1> www.jb51.net

2> select * from test_delete;

3> go

name value

---------- -----------

张三 100

李四 80

王五 80

赵六 90

赵六 70

(5 行受影响)

作者 tearsmo

时间: 2024-10-10 11:14:20

SQL语句删除2条重复数据一条保留一条的相关文章

mysql查找删除重复数据并只保留一条实例详解

有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 50 1240 Abraham Lincoln High School 70 35 1241 Acalanes High School 120 89 1242 Academy Of The Canyons 30 30 1243 Agoura High School 89 40 1244 Agour

你真的会玩SQL吗?删除重复数据且只保留一条

在网上看过一些解决方法 我在此给出的方法适用于无唯一ID的情形 表:TB_MACVideoAndPicture 字段只有2个:mac,content mac作为ID,正常情况下mac数据是唯一的,由于操作失误导致数据插入多次,导致出现多个mac,content重复数据,现在只保留一条,删除多余的 大体思想是给重复数据一个自增ID,过滤出每组里面最小ID,删除原数据中所有重复数据再将最小ID插入 --查询出所有重复数据,并给定递增id SELECT IDENTITY( INT,1,1 ) AS i

SQL语句实现删除重复记录并只保留一条_数据库其它

复制代码 代码如下: delete WeiBoTopics where Id in(select max(Id) from WeiBoTopics group by WeiBoId,Title having COUNT(*) > 1); SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下:  select * f

用SQL语句,删除掉重复项只保留一条

原文 用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,

c#-sql语句删除一条记录有问题,毕业设计帮帮忙,能帮帮我吗?

问题描述 sql语句删除一条记录有问题,毕业设计帮帮忙,能帮帮我吗? enter code here DB db = new DB(); string UserName = this.txtUserName.Text; string PassWord = db.GetMD5(this.txtPwd.Text.ToString());//MD5加密 string Code = this.txtCode.Text; string cmdstr = "insert into tb_User(UserN

SQL语句删除重复记录

问题:如何把具有相同字段的记录删除,只留下一条.   例如:表test里有id,name字段,如果有name相同的记录只留下一条,其余的删除.name的内容不定,相同的记录数不定.   用SQL语句删除重复记录的方法: 1.将重复的记录记入temp1表   select [标志字段id],count(*) into temp1 from [表名] group by [标志字段id] having count(*)>1 2.将不重复的记录记入temp1表   insert temp1 select

MySQL 删除数据库中重复数据方法小结_Mysql

刚开始,根据我的想法,这个很简单嘛,上sql语句 delete from zqzrdp where tel in (select min(dpxx_id) from zqzrdp group by tel having count(tel)>1); 执行,报错!!~!~ 异常意为:你不能指定目标表的更新在FROM子句.傻了,MySQL 这样写,不行,让人郁闷. 难倒只能分步操作,蛋疼 以下是网友写的,同样是坑爹的代码,我机器上运行不了. 1. 查询需要删除的记录,会保留一条记录. select

在Oracle中如何删除表中设计重复数据

oracle|设计|数据|重复 我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一.对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧. 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询

sql语句合怎么并重复项

问题描述 sql语句合怎么并重复项 这种一样的药品可以给他合到一起吗?药品数量和金额也加到一起? 解决方案 select 药品名字,sum(数量),sum(个数) from 表名 group by 药品名称 解决方案二: 可以用统计Sql,按药品名称进行分组统计的,先统计,再将两个表连接起来,含有group by子句的sql查询字段只能查询统计数据及group by中的字段.参考: select 项目名称,sum(数量) AS 总量 ,sum(金额) 总额 group by 项目名称 as a

Access中如何用 Jet SQL 语句删除表关系?

access|语句 Access中如何用 Jet SQL 语句删除表关系?   如何用 jet sql 的 ddl 语句建立表和关系?微软的 Access 中包含 Data Definition Language (DDL) 来建立删除表以及关系,当然了,这也可以用 DAO 来解决. 以下就是示例:用 DDL 的 Create Table 建立一个表 Table1 ,主键是自动编号字段,另一个字段是长度是 10 的文本字段.CREATE TABLE Table1 (Id COUNTER CONS