几个删除重复记录的SQL语句
	
    
    
	几个删除重复记录的SQL语句
2009-03-02 10:08
比如现在有一人员表 (表名:peosons)
若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来 
select   p1.*   from   persons   p1,persons   p2   where   p1.id<>p2.id   and   p1.cardid   =   p2.cardid   and   p1.pname   =   p2.pname   and   p1.address   =   p2.address
可以实现上述效果.
几个删除重复记录的SQL语句
1.用rowid方法
2.用group by方法
3.用distinct方法
1。用rowid方法
据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:
查数据:
     select * from table1 a where rowid !=(select   max(rowid) 
     from table1 b where a.name1=b.name1 and a.name2=b.name2......)
删数据:
    delete   from table1 a where rowid !=(select   max(rowid) 
     from table1 b where a.name1=b.name1 and a.name2=b.name2......)
2.group by方法
查数据:
  select count(num), max(name) from student --列出重复的记录数,并列出他的name属性 
  group by num 
  having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次 
删数据:
  delete from student 
  group by num 
  having count(num) >1
  这样的话就把所有重复的都删除了。
3.用distinct方法 -对于小的表比较有用
create table table_new as   select distinct *   from table1 minux 
truncate table table1;
insert into table1 select * from table_new;
查询及删除重复记录的方法大全
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people 
where peopleId in (select peopleId from people group by peop
    
     
	
	
    
    
	相关文档:
        
    
          1. 说明:复制表(只复制结构,源表名:a,新表名:b) 
SQL: select * into b from a where 1<>1; 
        2. 说明:拷贝表(拷贝数据,源表名:a,目标表名:b) 
SQL: insert into b(a, b, c) select d, e, f from b; 
   &nb ......
	
    
        
    
     SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序 ......
	
    
        
    
     --查看CPU利用率
-- CREATE PROCEDURE sp_GetTop10_CPU () AS 
BEGIN
  SET NOCOUNT ON 
  DECLARE @cinterval char(8) 
  DECLARE @interval int
  SET @cinterval = '00:00:10'
  CREATE TABLE #thread
  (
    RUN INT NOT NULL, 
    SPI ......
	
    
        
    
     create table #a
(
a int identity(1,1) primary key,
b int default(0) not null,
c nvarchar(20)
)
insert into #a(c)
select 'a' union all
select 'b' union all
select 'c' union all
select 'd' union all
select 'e' 
select * from #a
alter table #a drop constraint DF__#a_____________b__12 ......