zoukankan      html  css  js  c++  java
  • SQL删除重复数据 Yang

    记录一下!

    CREATE TABLE DuplicateTable
    (
       ID INT IDENTITY(1,1) PRIMARY KEY,
       USERNAME NVARCHAR(20),    
       AGE INT,
       PROVINCE NVARCHAR(20),
       CITY NVARCHAR(20),
       ToTALGrades DECIMAL(18,2)
    )
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Yangzhi',23,'四川','成都',600.5);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Yangzhi',23,'四川','汶川',600.5);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Yangzhi',23,'四川','成都',605);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Yangzhi',21,'四川','成都',600.5);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Zhangsan',24,'重庆','重庆',559);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Zhangsan',24,'重庆','重庆',559);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Lisi',22,'重庆','重庆',559);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Lisi',22,'重庆','重庆',559);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Wangwu',22,'重庆','重庆',595);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Wangwu',23,'重庆','重庆',595);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Lisi',23,'重庆','重庆',600.2);
    INSERT INTO DuplicateTable(USERNAME,AGE,PROVINCE,CITY,ToTALGrades)
    VALUES('Wangwu',23,'重庆','重庆',595);
    
    
    SELECT * FROM DuplicateTable dt
    
    DECLARE
        @sql NVARCHAR(4000),
        @groupByConditions NVARCHAR(800)
    SELECT @groupByConditions=ISNULL(@groupByConditions+',','')+ col.name FROM ( SELECT s.name FROM syscolumns s WHERE id=OBJECT_ID(N'DuplicateTable') AND s.name<>'ID')col
    SET @sql='SELECT MIN(ID) ID  FROM DuplicateTable dt GROUP BY '+@groupByConditions+' ORDER BY ID ASC'
    SET @sql= 'DELETE * FROM DuplicateTable dt WHERE dt.ID NOT IN('+@sql+')'
    EXEC(@sql)
    
    
    
    --查询一个数据库有那些数据表
    SELECT * FROM sysobjects s WHERE s.xtype='U'
    
    --查询一个表有那些列
    SELECT s.name FROM syscolumns s WHERE id=OBJECT_ID(N'DuplicateTable') AND s.name<>'ID'
  • 相关阅读:
    一年后重翻javascript
    针对thinkphp 5框架存储过程bug而重写的存储过程的扩展类
    移动应用端的支付宝支付php开发流程
    android studio 开发中启动android项目报错sdk版本不一致解决方案
    正则表达式(一)
    linux下memcached安装以及启动
    linux如何添加服务为系统服务快速启动或关闭
    js或者jquery直接下载网页上的图片代码
    onethink多图上传
    php+redis实现多台服务器内网存储session并读取
  • 原文地址:https://www.cnblogs.com/Yang2012/p/2935164.html
Copyright © 2011-2022 走看看