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'
  • 相关阅读:
    【入门OJ】2003: [Noip模拟题]寻找羔羊
    vue history模式 ios微信分享坑
    JS预解释
    vuex存储和本地存储(localstorage、sessionstorage)的区别
    call、apply、bind
    正则表达式常用元字符
    微信公众号自定义菜单跳转到相关联小程序
    javaScript运动框架之缓冲运动
    javaScript运动框架之匀速运动
    js事件冒泡、阻止事件冒泡以及阻止默认行为
  • 原文地址:https://www.cnblogs.com/Yang2012/p/2935164.html
Copyright © 2011-2022 走看看