zoukankan      html  css  js  c++  java
  • TSQL 筛选删除重复记录并保留一条

    以下为,实现此操作的通用T-sql模版:

    /*delete from a FROM       --删除表a (a 是引用的需要删除的表)
    (
     select ROW_NUMBER() over    -- ROW_NUMBER() over 是一个整体  产生一个从一开始的自增列
     (               
      partition by 重复列1, 重复列2, 重复列3   --,重复列n    partition by 跟group by 大同小异  但是并不是聚合函数 是显示所有的记录,包括重复的             
      order by 重复列1, 重复列2, 重复列3   --,重复列n       order by 跟 ROW_NUMBER() over 连用
     ) RowNumber   --RowNumber 给括号里 ROW_NUMBER 返回结果列 的一个别名
     from 表名) a  --a  结果表的别名
    where a.RowNumber > 1  -- 表a 里的RowNumber的值大于1(记录在一条以上的标识重复)*/

    接下来是实现此操作的一段事例代码:

    CREATE DATABASE Test

    go

    USE Test

    go

    CREATE TABLE #Test (  id UNIQUEIDENTIFIER,  NAME NVARCHAR(20),  pwd NVARCHAR(20) )

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'zhangsan','zhangsan')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'zhangsan','zhangsan1')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'zhangsan','zhangsan')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'zhangsan','zhangsan')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'lisi','lisi')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'lisi','lisi')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'lisi','lisi1')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'lisi','lisi')

    INSERT INTO #Test( id, NAME, pwd )VALUES (NEWID(),'lisi','lisi')

    SELECT * FROM #Test

    --查询出排除重复记录,保留一条后的结果,以便加以对比测试

    SELECT * from

        (select ROW_NUMBER() over

                   (

                        partition by  name, pwd

                 order by name, pwd

                   ) RowNumber,* from #Test

          ) a where a.RowNumber > 1

    --执行删除操作(删除重复记录,保留一条)

    delete from a  from

        (select ROW_NUMBER() over

                   (

                        partition by  name, pwd

                order by name, pwd

                  ) RowNumber from #Tes

          ) a where a.RowNumber > 1

  • 相关阅读:
    TP5学习笔记- 使用命令行创建控制器
    centos 7 下安装mysql5.7
    webserver的安装
    linux常用命令 服务器硬件资源信息
    SSH 安装/ config 配置以及免密码登录
    thinkphp ,laravel,yii2运行环境搭建.
    分享几个博客园代码样式的CSS配置(复制黏贴即可)
    vue中通过.sync修饰符实现子组件修改父组件数据
    vue中$attrs和$listeners以及inheritAttrs的用法
    Vue项目中实现用户登录及token验证
  • 原文地址:https://www.cnblogs.com/Shaina/p/2769800.html
Copyright © 2011-2022 走看看