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

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

发布时间:2020-12-12 09:25:59 所属栏目:MsSql教程 来源:网络整理
导读:-- 任意的测试表 div class="codetitle" a style="CURSOR: pointer" data="52929" class="copybut" id="copybut52929" onclick="doCopy('code52929')" 代码如下:div class="codebody" id="code52929" CREATE TABLE test_delete( name varchar(10), value INT

-- 任意的测试表
<div class="codetitle"><a style="CURSOR: pointer" data="52929" class="copybut" id="copybut52929" onclick="doCopy('code52929')"> 代码如下:<div class="codebody" id="code52929">
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 --创建视图
<div class="codetitle"><a style="CURSOR: pointer" data="44643" class="copybut" id="copybut44643" onclick="doCopy('code44643')"> 代码如下:<div class="codebody" id="code44643">
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> www.52php.cn
2> select * from test_delete;
3> go
name value
---------- -----------
张三 100
李四 80
王五 80
赵六 90
赵六 70 (5 行受影响)
作者 tearsmo

(编辑:李大同)

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

    推荐文章
      热点阅读