易截截图软件、单文件、免安装、纯绿色、仅160KB

【转帖】SQL Oracle删除重复记录

1.Oracle删除重复记录.
删除表中多余的重复记录,重复记录是根据单个字段(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)
删除表中多余的重复记录(多个字段),只留有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)
================================
此方法可以适用于sql ,oracle
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
/*
DECLARE @count INT
SELECT @count = COUNT(*) from [table1] WHERE [column1] = 1
DELETE TOP (@count-1) from [table1] WHERE [column1] = 1  这个top后面一定要有括号
*/
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
 =======================================
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
=======================================
 select identity(int,1,1) as id ,name,state into #tempTable from a
delete from a
delete from #tempTable
where id not in
(
 select min(id) from #tempTable group by name
)
insert into a( name,state)
select name,state from #tempTable
drop table #tempTable
本文来自CSDN博客,出处:http://b


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

数据库命名规范(适用SQL Server)

设计原则
 
符号三大范式(每一列表达一个意思,每一行代表一个实例/每一行有唯一键/表内没有其它表的非主键信息)
 
每个表应该有的3个有用字段(记录创建或更新时间/记录创建者/记录版本)
 
避免保留字
 
表应避免可为空的列


 
命名规范
 

表名如Or ......

面向 OLTP 应用程序的重要 SQL Server 2005 性能问题

面向 OLTP 应用程序的重要 SQL Server 2005 性能问题
OLTP 工作负荷的特征是存在大量相似的小型事务。
在检查数据库设计、资源利用和系统性能的重要性时,请务必牢记这些特征。下面简述面向 OLTP
应用程序的重要性能瓶颈或缺陷。
数据
库设计问题
常用查询存在过多的表联接。在 OLTP 应用程序中过多使用联接将导 ......

Microsoft SQL Server 查询处理器的内部机制与结构

摘要:本文介绍了在客户机上处理 Microsoft sql server(WINDOWS平台上强大的数据库平台) 查询的方式,各种客户机与 sql server(WINDOWS平台上强大的数据库平台) 的交互方式,以及 sql server(WINDOWS平台上强大的数据库平台) 在处理客户机程序的请求时需要完成的工作。
简介
  Microsoft(R) sql server(WINDOWS平台上强 ......

PL/SQL初学者必读:几十个实用的PL/SQL

第一阶段
Q.编写一个PL/SQL程序块以显示所给出雇员编号的雇员的详细信息。
A.
 DECLARE
 erec emp%ROWTYPE;
BEGIN
 SELECT * INTO erec from emp  WHERE empno=&雇员编号;
 DBMS_OUTPUT.PUT_LINE('EmpNo' || ' ' || 'Ename' || ' '|| 'Job' || ' ' || 'Manager' || ' ' || 'HireDate' ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号