完全重复数据,可能导致录入等等错误...
    查询无重复结果:     select distinct * from tableName     就可以得到无重复记录的结果集。 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除     select distinct * into #tmp from kc_wzmx        delete     from    kc_wzmx      insert     into    kc_wzmx    select     *     from    #tmp      kc_wzmx为表名,发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
查询,列出htfphm_、gg_和kbh_三个字段完全重复的数据;
select  * from  kc_wzmx aa where (select Count(1) from kc_wzmx where aa.htfphm_=htfphm_ and aa.gg_=gg_ and aa.kbh_=kbh_ )>1
SQL Server删除表及删除表中数据的方法 删除表的T-SQL语句为: drop table <表名> drop是丢弃的意思,drop table表示将一个表彻底删除掉。
删除表数据有两种方法:delete和truncate。 delete的用法如下: delete from <表名> [where条件] truncate的用法如下: truncate table <表名> delete和truncate的区别如下: 1、delete可以删除表中的一条或多条数据,也可以删除全部数据;而truncate只能将表中的全部数据删除。 2、delete删除表数据后,标识字段不能复用。也就是说如果你把id=10(假如id是标识字段)的那行数据删除了,你也不可能再插入一条数据让id=10. 3、truncate删除表数据后,标识重新恢复初始状态。默认为初始值为1,也就是说,truncate之后,再插入一条数据,id=1.
其它互联网摘抄:
1、写一张表中有id和name 两个字段,查询出name重复的所有数据,现在列下: select * from xi a where (a.username) in  (select username from xi group by username  having count(*) > 1) 2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下: select  count(username) as ’重复次数’,username from xi group by username  having count(*)>1 order by username desc 3、一下为 查看别人的 结果,现列下:查询及删除重复记录的方法大全
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  peopleId   having  count(peopleId) > 1) and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)  select * from vitae a where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete from vitae a where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 select * from vitae a where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二) 比方说 在A表中存在一个字段“name”, 而且不同记录之间的“name”值有可能会相同, 现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项; Select Name,Count(*) From A Group By Name Having Count(*) > 1如果还查性别也相同大则如下: Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三) 方法一declare @max integer,@id integerdeclare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1open cur_rowsfetch cur_rows into @id,@maxwhile @@fetch_status=0beginselect @max = @max -1set rowcount @maxdelete from 表名 where 主字段 = @idfetch cur_rows into @id,@maxendclose cur_rowsset rowcount 0
方法二"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用select distinct * from tableName 就可以得到无重复记录的结果集。 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除select distinct * into #Tmp from tableNamedrop table tableNameselect * into tableName from #Tmpdrop table #Tmp 发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集select identity(int,1,1) as autoID, * into #Tmp from tableNameselect min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoIDselect * from #Tmp where autoID in(select autoID from #tmp2) 最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四) 查询重复select * from tablename where id in (select id from tablenamegroup by idhaving count(id) > 1)
*******举例*********
查询 Sap Business One制造商OMRC表中重复数据(Pass) select * from omrc where firmname in (select  firmname  from  omrc  group  by  firmname  having  count(firmname) > 1)
删除 Sap Business One制造商OMRC表中重复数据(Pass) delete from omrc where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) > 1) and FirmCode not in (select min(FirmCode) from  omrc  group by FirmName  having count(FirmName )>1)
OMRC为表名,FirmName/FirmCode为字段名。
***删除或保留一些行数据
数据库int001几个表OMRC/POR1/RDR1,保留前六行数据(操作,出现表错误,处理后/truncate/再导入) DELETE OMRC WHERE FirmCode NOT IN(SELECT TOP 6 FirmCode FROM OMRC) DELETE Por1 WHERE DocEntry NOT IN(SELECT TOP 6 DocEntry FROM Por1) DELETE RDR1 WHERE DocEntry NOT IN(SELECT TOP 6 DocEntry FROM RDR1)
 
*****************************
查询数据库中带有某个字段的所有表名
MySQL数据库查询带有某个字段的所有表名:
(1)精确查询语句如下:
SELECT * FROM information_schema.columns WHERE column_name=’column_name’
(2)模糊匹配查询
SELECT * FROM information_schema.columns WHERE column_name LIKE ’%column_name%’
Oracle数据库查询带有某个字段的所有表名:
(1)精确查询语句如下:
SELECT column_name,table_name FROM user_tab_columns WHERE column_name=’column_name’
(2)模糊匹配查询
SELECT column_name,table_name,FROM user_tab_columns WHERE column_name LIKE ’%column_name%’
SQLServer数据库查询带有某个字段的所有表名:
(1)精确查询语句如下:
SELECT [name] FROM [库名].[dbo].sysobjects WHERE id IN (SELECT id FROM [库名].[dbo].syscolumns WHERE name = ’字段名’)
(2)模糊匹配查询
SELECT [name] FROM [库名].[dbo].sysobjects WHERE id IN (SELECT id FROM [库名].[dbo].syscolumns WHERE name LIKE ’%字段名%’)
 
  |