设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> 数据库技巧 >> 如何删除数据库中的冗余数据(翻译)
精品推荐
数据库技巧点击TOP10
·"SQL Server不存在或访问被拒绝"问题的解决
·在SQL Server 2000里设置和使用数据库复制
·两个sql server 2000的通用分页存储过程
·自己改写的一个sql server 2000的分页存储过程
·关于Tomcat与MySQL连接池问题的详解
·如何删除数据库中的冗余数据(翻译)
·SQL Server的链接服务器技术小结
·Oracle中捕获问题SQL解决CPU过渡消耗
·如何手动删除 SQL Server 2000 默认实例、命名实例或虚拟实例
·如何修改SQL Server 2000身份验证模式和系统管理员
网络编程点击TOP10
·ASP.NET 程序中常用的三十三种代码
·CHK文件恢复工具
·.NET 初 级 读 本
·c#操作word表格
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·我的.NET书架 (入门篇)
·十天学会ASP.net之第一天
·从零开始学ASP.NET(基础篇)
·用C#实现木马程序
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
精选专题

如何删除数据库中的冗余数据(翻译)

作者: 来源:http://www.xgdown.com/ 时间:2005-11-19 1:25:45

如何删除数据库中的冗余数据(翻译) (10)    DBMS_OUTPUT.PUT_LINE(TO_CHAR(vCounter)
                        ' duplicates have been deleted.');

   EXCEPTION
      WHEN OTHERS
   THEN
      DBMS_OUTPUT.PUT_LINE('Error '
                                TO_CHAR(SQLCODE) ': ' SQLERRM);
         ROLLBACK;

END DeleteDuplicates;

 

它将冗余数据选择到一个游标中,并根据(LastName,FirstName)来分组(在我们这个方案中),然后打开游标然后循环地取出每一行,然后用与先前的取出的键值进行比较,如果这是第一次取出这个值,或者这个值不是冗余键,那么跳过这个记录然后取下一个,不然的话,这就是这个组中的冗余记录,所以删掉它.
让我们运行一下这个存储过程
BEGIN
   DeleteDuplicates;
END;
/

SELECT LastName, FirstName, COUNT(*)
   FROM Customers
   GROUP BY LastName, FirstName
   HAVING COUNT(*) > 1;

最后一个查询语句没有返回值,所以冗余数据没有了从表中取冗余数据的过程完全是由定义在csr_Duplicates 这个游标中的SQL语句来实现的,PL/SQl只是用来实现删除冗余数,那么能不能完全用SQL语句来实现呢?

二.SQL解决方案,使用RANK()删除冗余数据
Oracle8i分析函数RANK()来枚举每一个组中的元素,在我们的方案中, 我们应用这个方案,我们使用这个函数动态的把冗余数据连续的排列起来加上编号,组由Partintion by 这个语句来分开,然后用Order by 进行分组
SELECT ID, LastName, FirstName,
   RANK() OVER (PARTITION BY LastName,
      FirstName ORDER BY ID) SeqNumber
   FROM Customers
   ORDER BY LastName, FirstName;

SQL
Listing 7. Output of single SQL statement that uses RANK()
显示的是根据记录的条数的个数来显示尤其对于冗余数据
ID LASTNAME        FIRSTNAME   SEQNUMBER
----- --------------- ---------- ----------
 1018 Blake           Becky               1

1.如何删除数据库中的冗余数据(翻译) (1)
2.如何删除数据库中的冗余数据(翻译) (2)
3.如何删除数据库中的冗余数据(翻译) (3)
4.如何删除数据库中的冗余数据(翻译) (4)
5.如何删除数据库中的冗余数据(翻译) (5)
6.如何删除数据库中的冗余数据(翻译) (6)
7.如何删除数据库中的冗余数据(翻译) (7)
8.如何删除数据库中的冗余数据(翻译) (8)
9.如何删除数据库中的冗余数据(翻译) (9)
10.如何删除数据库中的冗余数据(翻译) (10)
11.如何删除数据库中的冗余数据(翻译) (11)
12.如何删除数据库中的冗余数据(翻译) (12)
13.如何删除数据库中的冗余数据(翻译) (13)
14.如何删除数据库中的冗余数据(翻译) (14)
15.如何删除数据库中的冗余数据(翻译) (15)
16.如何删除数据库中的冗余数据(翻译) (16)
共16页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [168 :>

如何删除数据库中的冗余数据(翻译) 相关文章:
如何删除数据库中的冗余数据(翻译) 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com