您现在的位置是:网站首页> 编程资料编程资料
SQL语句删除2条重复数据一条保留一条_MsSql_
2023-05-26
463人已围观
简介 SQL语句删除2条重复数据一条保留一条_MsSql_
-- 任意的测试表
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
复制代码 代码如下:
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
您可能感兴趣的文章:
相关内容
- 将Reporting services的RDL文件拷贝到另外一台机器时报Data at the root level is invalid的解决方法_MsSql_
- sqlserver 修改列名及表名的sql语句_MsSql_
- SQL Server 作业同步 (结合备份作业)_MsSql_
- SQL Server 作业的备份(备份作业非备份数据库)_MsSql_
- SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句_MsSql_
- SQL Server 复制需要有实际的服务器名称才能连接到服务器_MsSql_
- 数据库复制性能测试 推送模式性能测试_MsSql_
- SQLServer 2005 实现数据库同步备份 过程-结果-分析_MsSql_
- 教你怎么使用sql游标实例分享_MsSql_
- sql语句查询数据库中的表名/列名/主键/自动增长值实例_MsSql_
