加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 07:41:26 所属栏目:MsSql教程 来源:网络整理
导读:感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! -- 任意的测试表 代码如下: CREATE TABLE test_delete( name varchar(10),value INT ); go -- 张三100 与 王五80 是有重复的 INSERT INTO test_delete SELECT 张三,100 UNION ALL SELEC

感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!

-- 任意的测试表

代码如下:

 
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 '赵六',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 
FROM 
test_delete 

--删除数据
1> DELETE FROM tmp_view WHERE no != 1
2> go

(2 行受影响)

-- 核对结果
1> 52php.cn
2> select * from test_delete;
3> go
name value
---------- -----------
张三 100
李四 80
王五 80
赵六 90
赵六 70

(5 行受影响)


作者 tearsmo

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读